我有一个存储过程应该获取日期等于当前日期或将来的所有记录.
日期保存在列targetDate中,并格式化为datetime.
我对应的WHERE子句如下:
日期保存在列targetDate中,并格式化为datetime.
我对应的WHERE子句如下:
WHERE A.targetDate >= GETDATE()
一般来说,我的存储过程工作正常,我唯一的问题是如果targetDate等于当前日期,因为所有日期都保存如下,即时间设置为零:
2014-02-22 00:00:00.000
我如何更改我的WHERE子句,以便它只考虑日期但忽略与它一起保存的时间,以便即使时间已经过,我也可以获得当前日期的任何记录?
蒂姆,非常感谢你提供的任何帮助.
解决方法
改成:
WHERE A.targetDate >= cast(GETDATE() as date)
编辑 – 因为targetdate还包含时间,是的,格式如下:
WHERE cast(A.targetDate as date) >= cast(GETDATE() as date)
编辑 – 给出评论重新:表现,可能想尝试:
WHERE a.targetdate >= cast(cast(getdate() as date) as datetime)
上次编辑应该给你相同的结果,并利用targetdate上的任何索引