如果您正在使用SQL Server 2008,它现在已内置,请参阅在线书籍
CAST(GETDATE() AS date)
如果您正在使用SQL Server 2008,它现在已内置,请参阅在线书籍
CAST(GETDATE() AS date)
这对性能非常不利,看看只在数据库中你可以通过改变几行代码获得1000%+改进
操作员左侧的功能不好
这是你需要做的
declare @d datetime select @d = '2008-12-1 14:30:12' where tstamp >= dateadd(dd, datediff(dd, 0, @d)+0, 0) and tstamp < dateadd(dd, datediff(dd, 0, @d)+1, 0)
运行它以查看它的作用
select dateadd(dd, datediff(dd, 0, getdate())+1, 0) select dateadd(dd, datediff(dd, 0, getdate())+0, 0)
其他人发布的日期函数是处理此问题的最正确方法.
然而,你提到术语"地板"很有趣,因为有一点点黑客会运行得更快:
CAST(FLOOR(CAST(@dateParam AS float)) AS DateTime)
CONVERT(date, GETDATE())
并且CONVERT(time, GETDATE())
在SQL Server 2008中工作.我不确定2005年.
这个怎么样?
SELECT DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0)