为什么空的返回1/1/1900?

时间:2016-01-15 19:08:04

标签: sql sql-server sql-server-2012

我的商店日期为“”,但它返回1/1/1900我尝试将Convert(varchar,PersonalInfo.PersonalInfoDOB,106)作为PersonalInfoDOB,但返回1/1/1900

2 个答案:

答案 0 :(得分:2)

SQL只能在给定列中返回1个数据类型。这意味着如果在datetime列中返回一个空字符串,它将执行一个隐式转换为datetime。在处理datetime时,实际上发生了两次隐式转换。第一种是隐式地将值转换为int,而隐式转换为int的空字符串为0.然后将int转换为日期时间,并将int值0转换为1900-01-01作为日期时间。

答案 1 :(得分:0)

你必须将它存储为NULL而不是"" datetime与字符串("")

不兼容