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

Date/Time 問題

尚未結案
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 14:42:01 IP:202.82.xxx.xxx 未訂閱
如果我的database 其中一個field 叫'datetime' 是date/time的類型. 我用 'select * from card where datetime >''2004/9/21''' 會說我類型不符. 我應該如何寫? 我用的是access
epl
一般會員


發表:5
回覆:9
積分:2
註冊:2003-02-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-20 14:52:20 IP:140.112.xxx.xxx 未訂閱
如果你用的是 ADO 元件的話,可以用參數,會比較方便 用“:”加上自訂的參數名稱,再設定參數值即可。 EX: adq_1.SQL.Add('SELECT * FROM card WHERE datetime = :myDt'); adq_1.Parameters.ParamByName('myDt').Value := Now;
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-20 14:53:25 IP:61.222.xxx.xxx 未訂閱
'select * from card where datetime >DATEVALUE(''' Datetostr(EnCodeDate(2004,9,21)) ''')'
jimmy_wei
高階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-20 15:16:14 IP:210.244.xxx.xxx 未訂閱
插花一下,純屬個人意見.... 一般來說,我在資料庫裡是不是會到date/time或date這種型 態的,個人覺得相當不好用,也覺得相當的沒必要,通常都會用 varchar來代替,這樣在下語法的時候也會方便不少.... 以上純屬個人意見,提供大家參考.... 發表人 - jimmy_wei 於 2004/10/20 15:18:05
mflyy
初階會員


發表:3
回覆:44
積分:44
註冊:2002-08-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-20 15:54:16 IP:211.20.xxx.xxx 未訂閱
Hello tidal : 如果你是想傳字串型態為參數值用以下寫法比較符合你的要求 select * from card where CONVERT(char(10),YourDateTime,111) > '2004/9/21' 先將DateTime Field 內的資料轉成 char 即可 !! 如果使用datetime 型態,你要注意你的data內是否有時間的資料 單純去使用 datetime >'2004/9/21' 可能會出現不是你要的資料內容 因為時間也會被拿出來比較的
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-20 16:50:16 IP:219.80.xxx.xxx 未訂閱
  這個錯次是因為Access 的時間所使用的識別字元是 # 而不是 ' 所以正確方式應該是
 'select * from card where datetime #2004/9/21#'     
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-20 18:40:10 IP:202.62.xxx.xxx 未訂閱
您好﹗    ha0009版大的回答應是正解了﹐小弟插個花﹒ 您還需要注意的是系統設定的日期格式﹐在此處的日期格式需要和[地區選項/日期/簡短日期樣式]中的設定相符合﹐不然在程式中也是會出現此類錯誤的﹒    ========================= 大病初愈﹐休養調整中... =========================
------
忻晟
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-21 00:47:49 IP:221.169.xxx.xxx 未訂閱
跟隨cashxin2002版大一起插花!ha0009版大是正解,若程式要移植到 其他資料庫又如何? 我曾經回答過http://delphi.ktop.com.tw/topic.php?TOPIC_ID=56185 【問題】找尋日期問題 答題得分者為:andychang1690 中是如此說的: 我先說我個人經驗,從Dos起我寫過的程式於大陸、東南亞、 美國、歐洲都有!面臨各國的日期環境說真的我被逼瘋了!後來我全部用 字串處理!統一一個格式yyyymmdd如此程式內的輸入我是使用日期格式 管你是怎麼格式我只要使用FormatString就可以了! 提供參考! Andy Chang
------
Andy Chang
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-21 08:12:07 IP:221.124.xxx.xxx 未訂閱
引言:
  這個錯次是因為Access 的時間所使用的識別字元是 # 而不是 ' 所以正確方式應該是
 'select * from card where datetime #2004/9/21#'     
如果是MS SQL .也是一樣嗎?
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-21 08:33:37 IP:221.169.xxx.xxx 未訂閱
tidal:一般SQL都可引用 ' ,除了Access,請用KTop搜尋,關鍵字:datetime mssql。 查詢關鍵字:datetime mssql (64 61 74 65 74 69 6D 65 20 6D 73 73 71 6C ,datetime mssql) 本次查詢共找到34筆 其中這篇: http://delphi.ktop.com.tw/topic.php?topic_id=53453 【Delphi】【問題】SQL 問題請教(日期時間轉換成浮點數)? 答題得分者為:timhuang cherry 結論中提到: 感謝timhuang... 原來是這樣 我瞭解了... 我整理如下, 希望可以供其它人參考 :) 如果以浮點數來處理時間 ================================================= delphi的基準點是 1899/12/30 mssql 的 基準點是 1900/1/1 Access的基準點是 1899/12/30 ================================================= 如果以字串來處理時間 必須注意各資料庫的用法 ================================================= Access 有專用的符號# select * from dz_main where logtime > #2003/07/30# ================================================= Cherry 請參考! Andy Chang
------
Andy Chang
bennykyp
一般會員


發表:11
回覆:31
積分:8
註冊:2004-10-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-10-21 11:15:41 IP:218.208.xxx.xxx 未訂閱
在 Interbase 裡  'select * from card where datetime #2004/9/21#' 很像行不通。 聽說在 Window 2000 裡昇級 ODBC 版本就能解決此問題。    但在 Window XP 似乎就沒有此問題。 不知有沒有人試過。
bennykyp
一般會員


發表:11
回覆:31
積分:8
註冊:2004-10-21

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-10-21 12:01:57 IP:218.208.xxx.xxx 未訂閱
Sorry for the Error displaying word. excually I'm using the English OS, but don't know why I type the chinese word come out the error.    And what did I am saying before. In the Interbase , when we using this SQL statement 'select * from card where datetime > #2004/9/21#' I heard about it , this statement also cannot run in Interbase, If upgrade the ODBC version in window 2000 to the higher version , it should be can soft the problem. but in Window XP, I also heard about it that is not the problem. I didn't try it properly. I need all of yours reply. Thanks
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-10-21 12:40:06 IP:211.162.xxx.xxx 未訂閱
好不熱鬧,小弟也插個花,全當自己的私心,以方便以後資料的收集 >人生在勤,不索何獲 <>業精於勤荒於嬉,行成於思毀於隨 <>臨淵羡魚不如退而結網
------
人生在勤,不索何获?
系統時間:2024-07-07 7:16:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!