任何人都可以让我知道下面这个声明正在验证的确切日期差异是什么 列检查约束?
DATEDIFF(millisecond,[MyDateColumn],
DATEADD(day,DATEDIFF(day,(0),[MyDateColumn]),(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)))
是从午夜到给定日期时间经过的毫秒数值(value)。
基本上它会检查列中的值是否在午夜。 (强制 DATETIME
数据类型充当 DATE
列的约束。)
关于sql - SQL 表列上的这个 datediff 检查约束正在验证什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910762/