这个对SQL表列的约会检查约束是什么验证的?

时间:2014-09-18 10:55:33

标签: sql sql-server database

任何人都可以让我知道以下声明正在验证的确切日期差异  列检查约束?

DATEDIFF(millisecond,[MyDateColumn],
         DATEADD(day,DATEDIFF(day,(0),[MyDateColumn]),(0)))=(0)))

1 个答案:

答案 0 :(得分:0)

  • CAST(0 AS DATETIME)1900-01-01 00:00:00.000DATETIME数据类型的默认值)。整数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列的约束。)