sql字段为datetime,插入''的时候默认为1900年

Microsoft SQL Server Database Engine 用两个 4 字节的整数内部存储 datetime 数据类型的值。 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。

基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。

相当于存储两个偏移量。1900-1-1的基准值加上两个偏移量,就是存储的日期值,也即两4字节存放的int数。

当你给datetime类型赋值为''时,因为datetime内部存储的原因,实际上是给int型数据赋值,''转换为int为0
可以理解为

dateadd(dd,0,'1900-1-1')

posted @ 2018-07-05 16:25  kanek  阅读(2537)  评论(0编辑  收藏  举报