erc*_*can 2 sql sql-server-2005
我正在为datetime寻找一个确定性截断函数,这个函数完成了这项工作:
DATEADD(dd, DATEDIFF(dd, 0, @date), 0)
但这应该是持久计算列的输入,它将成为主键的一部分,因此它必须是不可为空的.所以我做了这个:
ISNULL(DATEADD(dd, DATEDIFF(dd, 0, @date), 0), '01.01.1900')
但现在表达变得不确定了.任何人都可以告诉我为什么,以及如何让它确定性?
谢谢!
01.01.1900 不是确定性的...... 
这是:
ISNULL(DATEADD(dd, DATEDIFF(dd, 0, @date), 0), CONVERT(datetime, '19001010', 112)))
或这个
ISNULL(DATEADD(dd, DATEDIFF(dd, 0, fooDT), 0), 0)
有关更多信息,请参阅为什么我的CASE表达式不确定?这导致转换和验证日期字符串的最佳方式
| 归档时间: | 
 | 
| 查看次数: | 150 次 | 
| 最近记录: |