9

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

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

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

但是,我正在努力想出适用于该datetime2类型的东西。问题是 SQL Server 不允许从整数到datetime2类型的转换。

是否有一种等效的确定性方法从 a 中剥离时间部分datetime2

4

1 回答 1

14

你不能做一个

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

CAST(... AS DATE)您的 datetime2 列变成“仅限日期”,并且它似乎具有足够的确定性,可以用于持久的计算列定义......

于 2012-12-08T12:21:19.277 回答