請教大家
透過下列的語法來抓取目前資料庫所儲存的時間,並比對那些時間與現在差距在1分鐘內,語法如下
select DATEDIFF(mi, CONVERT(VARCHAR, CONVERT(DATETIME,getdate()), 111) + ' ' + Log_RunTime, GETDATE()) FROM Keyword
結果如下:
但是我資料表時間如下:
抓取語法:
select CONVERT(VARCHAR, CONVERT(DATETIME,getdate()), 111) + ' ' + Log_RunTime FROM Keyword
但它應該沒有時間與現在差距在1分鐘內,但卻還是抓到一筆,這可能是為什麼呢?
煩請大家指點
感謝
我只是猜想,你存日期的欄位使用的是 smalldatetime 那資料最小的單位只會到分不會到秒
如果我要比對差距於1分鍾內,我會以秒為單位,小於60秒內的資料才要顯示
所以資料庫的格式就要用 datetime 才會存到以秒為單位
因為smalldatetime 格式
在2分10秒新增的資料 在資料庫裡可能只存為2分00秒
跟2分50秒存的資料一樣叫 2分00秒
所以如果你現在的時間到了,3分59秒,
那 2分10秒存的資料應該不算1分內的資料但在資料庫裡
而 3分59秒實際只會存 3分00秒,
所以 2分10秒的資料在資料庫裡是 2分00秒 所以會被當1分內的資料了