我想寫一個SQL查詢以返回從昨天晚上9點到當前時間的結果。據我所知,GETDATE()
只會給我今天的結果,而GETDATE()-1
會給我昨天的所有,我不想要。sql獲取日期的具體時間
這又如何實現呢?
我想寫一個SQL查詢以返回從昨天晚上9點到當前時間的結果。據我所知,GETDATE()
只會給我今天的結果,而GETDATE()-1
會給我昨天的所有,我不想要。sql獲取日期的具體時間
這又如何實現呢?
select * from tbl
where datecol between dateadd(hour,21,DATEDIFF(d,0,getdate()-1))
and getdate()
嘗試使用此:
DATE_SUB(CURDATE(), INTERVAL 24-9 HOUR);
這substracts 24-9小時,以當前的日期,這相當於從其減去1天,並添加9小時。
試試這個,這工作完全在Sybase DATABSE
SELECT * FROM表,其中datecol> DATEADD(天,-1,DATEADD(小時,18,(轉換(日期時間,轉換(日期,GETDATE() )))))
說明:(內到外)
轉換(日期,GETDATE()) - 這將讓今天的日期,只有日期部分,即7/19/2015
convert(datetime,convert(date,getdate())) - 將得到今天的日期,時間爲00:00小時,即7/19/2015 12:00:00 AM
dateadd (小時,21,(convert(datetime,convert(date,getdate()))) - 這將添加小時到以前獲得的結果,即7/19/2015 9:00:00 PM
dateadd (date,-1,dateadd(hour,18,(convert(datetime,convert(date,getdate()))))) - 最後這會減去獲得日期的一天,即7/18/2015 9: 00:00 PM
這裏喲你去...
爲什麼BETWEEN?不是`datecol> = ...`足夠嗎? – 2011-02-01 19:58:16
@Joe - 它可能是一個包含未來數據的日曆表。未指定 – RichardTheKiwi 2011-02-01 19:59:15