線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1329
推到 Plurk!
推到 Facebook!

請問關於日期顯示問題

答題得分者是:pillar62
luckylin25
一般會員


發表:24
回覆:25
積分:9
註冊:2005-03-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-30 17:12:09 IP:211.72.xxx.xxx 未訂閱
請問各位大大 在執行程式時在日期是打上的2005/03/30 資料傳入資料庫時,是存成2005/3/30 但再從執行程式時,顯示出來的是2005/_3/30不然就是2005/3/30 我現在想讓顯示出來的資料為2005/03/30 我在EditMask是設為!9999/99/99;1; 資料庫的欄位設為DateTime型態 p.s.不知道有沒有存入資料庫時是否能存成2005/03/30而不是2005/3/30的方法
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-30 17:46:26 IP:210.64.xxx.xxx 未訂閱
你好 請問一下你的欄位型態應該是date吧!!如果是date欄位他一定會存成2005/3/30,如果你要顯示2005/03/30的型態,建議你在欄位的onGetText事件裡面,寫 if Field.AsString <> '' then Text := FormatDateTime('yyyy/mm/dd', Field.Value); 如果你一定要在資料庫裡面存成2005/03/30就只能將欄位改成VarChar的型態!!試試看吧!! Pillar Wang
------
Pillar Wang
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-30 17:46:44 IP:60.248.xxx.xxx 未訂閱
luckylin25你好: 我的建議是,不要把日期存成DATETIME型態, 用一般的文字(CHAR之類的,看資料庫)儲存就 好,相信後續產生的問題會比較少,查詢上也 比較方便...
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-30 17:59:04 IP:210.66.xxx.xxx 未訂閱
問題不在存入,是在於取出時的格式。 以下方式請參考 :     
  
function  MyDateToStr(dDate:TDateTime):string;
var
 year,month,day: word;
 sOut: string;
begin
 DecodeDate(dDate, Year, Month, Day);
 sOut:=FillSpace(IntToStr(Year),'0',4,'front')+'/'+
       FillSpace(IntToStr(Month),'0',2,'front')+'/'+
       FillSpace(IntToStr(Day),'0',2,'front');
 Result:= sOut;
end;
 
註 : FillSpace() 是用來塞字元的自定函式
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-30 18:15:28 IP:61.30.xxx.xxx 未訂閱
如果資料庫欄位型態是datetime 資料庫實際上並不是用"YYYY/MM/DD"或任何格式儲存 你看到的"YYYY/MM/DD" 只是顯示的格式 他實際上是用datetime(MSSQL:8 bytes integer)儲存  
引言: 具有 datetime 資料型別的值,在 Microsoft® SQL Server™ 內部是以兩個 4 位元組整數的形態儲存。前 4 個位元組儲存 base date (1900 年 1 月 1 日) 之前或之後的日數。基礎日期是系統參考日期。早於 1753 年 1 月 1 日的 datetime 值將不被允許。其它 4 個位元組儲存一天內的時間,從午夜開始算起,以毫秒表示。
取出來的預設"顯示格式"通常是跟著DB Server 系統設定的時間格式(以MSSQL為例) 如果是單純的時間資料 我覺得還是存成datetime較好 較有利於進行時間運算 到底要呈現何種格式 端看你自己格式化的結果 可以在sql statement 中直接格式化為string(MSSQL: CAST/CONVERT) 或是取回資料後再利用Delphi 函式格式化 @瞭解越多.懂得越少@
luckylin25
一般會員


發表:24
回覆:25
積分:9
註冊:2005-03-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-30 18:23:33 IP:211.72.xxx.xxx 未訂閱
感謝4位大大的回應 pillar62大大的答案比較符合我目前要的 就將得分給pillar62 發表人 -
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-30 19:47:14 IP:61.230.xxx.xxx 未訂閱
恭喜pillar62大大,果然是好方法 !!
系統時間:2024-08-15 16:03:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!