如何获取使用MSSQL GetDate()的日期?
这个问题在这里已经有了答案:
对SQL Server有轻微偏见
概要
DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
尽管SQL Server 2008具有date
类型。 所以就用吧
CAST(GETDATE() AS DATE)
编辑:添加一天,比较“零”前一天
DATEADD(day, DATEDIFF(day, -1, GETDATE()), 0)
来自cyberkiwi:
不涉及2个功能的替代方案是(+1可以位于括号内或位于括号内)。
DATEDIFF(DAY, 0, GETDATE() +1)
DateDiff
返回一个数字,但对于所有目的而言,除了直接将其转换为VARCHAR外,这将作为日期使用该表达式的日期起作用 - 在这种情况下,您将直接在GETDATE()上使用CONVERT方法,例如
convert(varchar, GETDATE() +1, 102)
对于SQL Server 2008,最好的和索引友好的方式是
DELETE from Table WHERE Date > CAST(GETDATE() as DATE);
对于以前的SQL Server版本,日期数学将比转换为varchar的速度更快。 由于区域设置的原因,即使转换为varchar也会导致错误的结果。
DELETE from Table WHERE Date > DATEDIFF(d, 0, GETDATE());
注:这是不必要的包裹DATEDIFF
与另一DATEADD
它是数据库特定的。 您尚未指定您正在使用的数据库引擎。
例如在PostgreSQL中你投的(myvalue作为日期)。
链接地址: http://www.djcxy.com/p/94369.html上一篇: How do I get just the date when using MSSQL GetDate()?
下一篇: How to only keep the time portion of a datetime value (SQL Server)?