請問關於日期顯示問題 |
答題得分者是:pillar62
|
luckylin25
一般會員 發表:24 回覆:25 積分:9 註冊:2005-03-07 發送簡訊給我 |
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
你好
請問一下你的欄位型態應該是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 發送簡訊給我 |
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
問題不在存入,是在於取出時的格式。
以下方式請參考 :
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 發送簡訊給我 |
如果資料庫欄位型態是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 發送簡訊給我 |
|
scotthsiao
高階會員 發表:13 回覆:324 積分:147 註冊:2005-02-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |