SQL 問題請教(日期時間轉換成浮點數)? |
答題得分者是:timhuang
|
cherry
一般會員 發表:16 回覆:26 積分:8 註冊:2002-06-28 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
hi, 在 mssql 中的 datetime 就是用 8個 bytes 的浮點數 來存放的, 所以是可以轉換的哦, 如 ha0009 兄的解釋, 該數整數的部分是日數. 基準點是 1900/1/1 00:00:00.000 為 0, 正代表往後, 負代表往前, 你可以在 sql query analyzer 中下: select convert(datetime, 0) 就可以得到了. 當然反過來操作也可以 select convert(float, convert(datetime, '2003/7/30')) 會得到 37830 ! 這樣明白了嗎? 節錄一段 help 中的敘述: datetime 從 1753 年 1 月 1 日到 9999年 12 月 31 日的日期時間資料,精確度到 300 分之 1 秒,即 3.33 毫秒。值會捨入成 .000, .003,即 .007 毫秒的遞增量。 smalldatetime 日期及時間資料從西元 1900 年 1 月 1 日到西元 2079 年 6 月 6 日,精準度為分。29.998 秒或更小的 smalldatetime 值將捨棄尾數成為最接近的分;29.999 秒或更大的值將補足尾數成為最接近的分。
|
cherry
一般會員 發表:16 回覆:26 積分:8 註冊:2002-06-28 發送簡訊給我 |
謝謝你們的回答。
但我仍然對時間的轉換不瞭解! [系統環境 sql 2000 delphi 6]
舉個例子說明
[在delphi]
剛剛拉了DateTimePicker1
將時間設定為2003/07/30
var
f : Double;
begin
f := DateTimePicker1.datetime;
showmessage(floattostr(f));
//out put is 37832.431908
end;
[在 sql]
select convert(float, convert(datetime, '2003-07-30'))
//out put is 37830 我的疑問是: 一樣的時間,轉換成浮點數卻不一樣?
時間的做法是可以用字串或浮點數來處理
目前的需求是用浮點數來處理
所以請各位幫忙
謝謝~
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
hi, cherry, 在 delphi 中的 datetime 是使用 double 來記錄的, 同樣是使用整數位當作日, 但是基準點不同, 所以不能直接用來和 mssql 的 datetime 轉出的數值比較的哦~ 引述一段 delphi 的 help 中的資訊: The integral part of a Delphi TDateTime value is the number of days that have passed since 12/30/1899. The fractional part of the TDateTime value is fraction of a 24 hour day that has elapsed. 他的基準點是 1899/12/30 所以和 mssql 的 1900/1/1 差 2 哦~~
|
cherry
一般會員 發表:16 回覆:26 積分:8 註冊:2002-06-28 發送簡訊給我 |
感謝timhuang...
原來是這樣
我瞭解了... 我整理如下, 希望可以供其它人參考 :)
如果以浮點數來處理時間
=================================================
delphi的基準點是 1899/12/30
mssql 的 基準點是 1900/1/1
Access的基準點是 1899/12/30
=================================================
如果以字串來處理時間
必須注意各資料庫的用法
=================================================
Access 有專用的符號#
select * from dz_main where logtime > #2003/07/30#
=================================================
Cherry
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |