【发布时间】:2020-03-02 07:58:40
【问题描述】:
我自动从另一个表中获取一些数据。日期列是一个字符串。我将此列转换为日期时间。但有时日期字段类似于"01.01.0002" 或"01.01.0202"。
发生这种情况时,我会收到此错误:
"SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 9999 年 12 月 31 日晚上 11:59:59。"
是否可以在出错时使用 If 语句将日期 "1/1/1753" 作为默认日期?
【问题讨论】:
-
尝试将日期字段更改为范围更广的
DateTime2。定义见here。 -
思南,请改用DateTime2 NULL,转换后可以将某个日期之前的列更新为NULL。
-
为什么不清理输入数据呢?如果字符串不是有效日期,请不要插入。你也可以使用
TRY_CONVERT()docs.microsoft.com/en-us/sql/t-sql/functions/…