我想写一个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