这看起来有点矫枉过正,但这是我能够在数据库级别将今天的日期时间设置为00:00:00.000的唯一方法:
select CAST(FLOOR(CAST(CURRENT_TIMESTAMP AS float)) AS DATETIME)
我尝试过使用:
select FLOOR(getdate())
但是请收到以下消息:
不允许从数据类型datetime到float的隐式转换。使用CONVERT函数运行
this query.
有人可以推荐另一种方法吗?
答案 0 :(得分:3)
由于您使用的是SQL Server 2008,因此可以使用date
数据类型。
declare @Today date
set @Today = getdate()
select @Today
或没有变量。
select cast(getdate() as date)
如果您需要将该值作为日期时间,则将其转换回日期时间。
select cast(cast(getdate() as date) as datetime)
答案 1 :(得分:1)
有很多方法可以做到这一点我之前见过一个地板。还有一些。
select cast(cast(CURRENT_TIMESTAMP as date) as datetime)
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
SELECT CAST(CAST(CURRENT_TIMESTAMP - 0.50000004 AS int) AS datetime)
我正常做Cast版本。