2016-02-26 38 views
0

運行以下:GETDATE()語句

GETDATE() AND datepart(hour, time) >= 5 AND datepart(hour, time) < 18 

這會不會讓我上午05點到下午5點?另外,是否有什麼特別的東西在凌晨5點到凌晨5點左右包裹在午夜左右。是否需要兩個聲明,一個是在午夜之前,另一個是從12:00到凌晨五點?

我運行下面,有時返回爲空。 這是否有任何意義?

WHERE time >= GETDATE() AND datepart(hour, time) >= 5 AND datepart(hour, time) < 18 
+0

你有任何樣本數據?我不太清楚你在找什麼。你能改述一下你想讓你的選擇做什麼,但不使用SQL語法嗎 – grambo25

+0

你並沒有真正指定你想要的東西。你只是告訴我們你的嘗試,並問我們是否正確。 – Icemanind

回答

0

如果你只是希望驗證一天的時間,如果上午05點和下午6點之間存在,那麼,你可以嘗試這樣的事情。

declare @d datetime = GETDATE() 
select DATEPART(hh, @d) 
where @d >= GETDATE() and datepart(hour, @d) >= 5 AND datepart(hour, @d) < 18; 

然後在下午1點,它給了13

在前一交易日的情況下,它不顯示任何內容,如:

set @d = DATEADD(dd, -1, @d) 
select DATEPART(hh, @d) 
where @d >= GETDATE() and datepart(hour, @d) >= 5 AND datepart(hour, @d) < 18; 

我的兩分錢!

+0

明白了。謝謝! –