如何只更改已存在日期欄位的時間而不動到日期 |
答題得分者是:ha0009
|
jerryhung
初階會員 發表:6 回覆:46 積分:30 註冊:2002-12-11 發送簡訊給我 |
如題
因為目前資料庫內的日期為Delphi前端的日期帶入的,所以為
2003-07-07 10:40:18.443
而前端查詢便會有問題,因為從 07/01/2003 ~ 07/07/2003
便不會包括這筆資料(因為SQL用 07/01 00:00 ~ 07/07 00:00) 那我想問是否有辦法下T-SQL語法,能只更動到時間部分而不改到日期
所以出來的日期能像這樣
2003-07-18 00:00:00.000 這樣查詢就可以查到了......... 謝謝!我網路上小找了一下只有找到
Update Time的UPDATE tabletest SET [Time] = '12:30:00 PM' 我的資料庫為SQL 2000 Delphi 5
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
william 兄的方法原理上是對的, 可是 sql 不支援取資料時的轉型, 所以要自行再轉型一次就可以了. update tabletest set afield = floor(convert(float,afield)) ha009 兄的方法是對的, 所有的轉型都是自己控制比較安全, 也比較理想. update tabletest set afield = convert(datetime, convert(varchar, afield, 111)) 這兩種方法都可以的!! 另外你也可以不要異動資料庫的資料, 直接在查詢的 command 下手, 將
select * from tabletest where afield >= '2003/7/1' and afield <= '2003/7/7'
改為
select * from tabletest where afield >= '2003/7/1' and afield <= dateadd(d, 1, '2003/7/7')
也是可行的!!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |