任何人都可以让我知道以下声明正在验证的确切日期差异 列检查约束?
DATEDIFF(millisecond,[MyDateColumn],
DATEADD(day,DATEDIFF(day,(0),[MyDateColumn]),(0)))=(0)))
答案 0 :(得分:0)
CAST(0 AS DATETIME)
是1900-01-01 00:00:00.000
(DATETIME
数据类型的默认值)。整数0
隐式转换为DATETIME
。datediff(day, (0), [MyDateColumn])
是上述日期之间的差异dateadd(day,datediff(day,(0),[MyDateColumn]),(0))
是指定日期的午夜。datediff(millisecond,[MyDateColumn],dateadd(day,datediff(day,(0),[MyDateColumn]),(0)))
是从午夜到给定日期时间值的经过的毫秒数。基本上它会检查列中的值是否为午夜。 (强制DATETIME
数据类型充当DATE
列的约束。)