Tsql t-SQL强制转换日期返回的时间少于2天
有人能解释一下为什么在日期前2天铸造datetime to date会返回一个日期吗 我只是遇到了这个,需要理解 只需执行以下操作:Tsql t-SQL强制转换日期返回的时间少于2天,tsql,datetime,date,casting,Tsql,Datetime,Date,Casting,有人能解释一下为什么在日期前2天铸造datetime to date会返回一个日期吗 我只是遇到了这个,需要理解 只需执行以下操作: SELECT CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime) AS currDate, CAST(CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime) AS DATE) AS lessDays 在我的Sql Server 2008中,R2向我返回以下信息
SELECT
CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime) AS currDate,
CAST(CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime) AS DATE) AS lessDays
在我的Sql Server 2008中,R2向我返回以下信息:
----------------------------------------------
| currDate | lessDays |
----------------------------------------------
| 2011-08-28 00:00:00.0 | 2011-08-26 |
----------------------------------------------
提前感谢这是一个不处理日期
数据类型的问题
我运行它,得到两列相同的值……运行此查询时,您的本地时间是几点?对
GETDATE()
的两次调用可能会返回不同的结果,因此,如果您恰好在午夜运行它,则可以解释1天的差异。如果您始终得到不同的结果,您可以尝试执行从中选择并查看执行计划,看看计算标量操作会说什么吗?Float不可靠;DATEADD/DATEDIFF是最快和最简单的reliable@OMG-您可以直接从datetime
转换到date
来提取日期。不需要通过float
和datetime
进行任何往返。仍然不能解释OP的观察结果。同上@Sparky。两列的值相同。