iT邦幫忙

0

時間點抓取的問題

  • 分享至 

  • xImage

請教大家
透過下列的語法來抓取目前資料庫所儲存的時間,並比對那些時間與現在差距在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分鐘內,但卻還是抓到一筆,這可能是為什麼呢?
煩請大家指點
感謝

看不出 Log_RunTime 資料與抓圖當時的時間?疑惑
ektrontek iT邦研究生 1 級 ‧ 2013-06-27 21:51:26 檢舉
抱歉,抓圖的時間在下午14:00
Log_RunTime 資料我是設定下午17:30
感謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

6
jcdavidkimo
iT邦新手 5 級 ‧ 2013-06-27 21:38:13

我只是猜想,你存日期的欄位使用的是 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分內的資料了

ektrontek iT邦研究生 1 級 ‧ 2013-06-28 08:59:29 檢舉

ektrontek提到:
CONVERT(VARCHAR, CONVERT(DATETIME,getdate()), 111) + ' ' + Log_RunTime

這裡有作時間格式的轉換,Log_RunTime的格式是nvarchar(50),我是透過與getdate()的轉換及組合,來合併成現在的時間
煩請大家指點
感謝

我要發表回答

立即登入回答