探讨:sql插入空,默认1900-01-01 00:00:00.000的解决方法详解

392 查看

sql2005 若字段定义的类型为datetime,插入为''(空),那么会默认值为1900-01-01 00:00:00.000

解决方法查询的时候过滤下cast(nullif('','') as datetime)

复制代码 代码如下:

select cast('' as datetime)
    , cast(nullif('','') as datetime)
    , isnull(cast(nullif('','') as datetime),getdate())
/*
----------------------- ----------------------- -----------------------
1900-01-01 00:00:00.000 NULL                    2009-02-25 17:18:15.140

(1 行受影响)

*/