首页 MsSql sql-server – SQL Server 2008:从datetime2获取日期部分

sql-server – SQL Server 2008:从datetime2获取日期部分

我一直在使用这个非常方便的方法从日期时间值中提取日期部分: select dateadd(day, datediff(day, 0, @inDate), 0) 这基本上将日期的时间部分清零.它很快,更重要的是它是确定性的 – 您可以在持久计算列,索引视图等中使用此表达式. 但是我很难想出一些适用于

我一直在使用这个非常方便的方法从日期时间值中提取日期部分:

select dateadd(day,datediff(day,@inDate),0)

这基本上将日期的时间部分清零.它很快,更重要的是它是确定性的 – 您可以在持久计算列,索引视图等中使用此表达式.

但是我很难想出一些适用于datetime2类型的东西.问题是SQL Server没有权限从整数到datetime2类型的转换.

是否有一个等同的,确定性的方法从datetime2剥离时间部分?

解决方法

你不能只做一个

ALTER TABLE dbo.YourTable
ADD DateOnly AS CAST(YourDate AS DATE) PERSISTED

CAST(… AS DATE)将您的datetime2列转换为“仅限日期”,并且它似乎足够确定性,可用于持久的计算列定义…

本文来自网络,不代表云浮站长网立场。转载请注明出处: https://www.0766zz.com/html/shujuku/mssql/20210330/17346.html
上一篇
下一篇

作者: dawei

【声明】:云浮站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部