我想显示当前日期过去4个月的记录。
我不想考虑时间
如何从以下查询中获取日期部分?
where OrderDate >= DATEADD(month, -4, GETDATE())
答案 0 :(得分:4)
如果您使用的是SQL Server 2008,请尝试直接将GETDATE()
转换为DATE
。
WHERE OrderDate >= DATEADD(month, -4, CONVERT(date, GETDATE()))
答案 1 :(得分:0)
为什么不使用简单的DATEDIFF函数
where DATEDIFF(MM, OrderDate, GETDATE()) < 4
答案 2 :(得分:0)
如果您无法使用DATE
类型,则旧方式:将DATETIME
值转换为CHAR
,修剪小时组件,然后将其转换回DATETIME
,因此小时组件将归零:
SELECT CONVERT(DATETIME, CONVERT(CHAR(8), GETDATE(), 112), 112)
-- -----------------------
-- 2014-02-25 00:00:00.000
重要的是使用标量参数上的函数(以及列上的不)来允许使用现有索引。