将日期时间转换为smalldatetime时出错

时间:2016-08-08 09:41:42

标签: sql-server

我在SQL服务器上创建了3个视图,第一个和第二个视图有一个小的日期时间列,第二个视图有日期时间,所以为了在视图之间建立联合我将日期时间转换为一个小的日期时间在SQL Server中使用函数convert就像这样:

Convert (SMALLDATETIME, V_date)

我遇到了这个错误:

error in converting a varchar to smalldatetime 

注意我使用了强制转换,但总是出现同样的错误。我不明白为什么它会在错误消息中找到varchar,因为原点中的列值(V_date)是日期时间。

3 个答案:

答案 0 :(得分:0)

您收到此错误,因为V_date为VARCHAR而非DATETIME

您应该检查V_date字段的内容,因为它不包含有效日期(检查MDY与DMY)

答案 1 :(得分:0)

这应该有用。

SELECT CONVERT(smalldatetime,CONVERT(datetime,V_date));

答案 2 :(得分:0)

使用try_convert,然后在输出中查找NULL以查找无效数据。

SELECT * FROM
(SELECT V_date as original, TRY_CONVERT(smalldatetime, TRY_CONVERT(datetime, V_date)) as d FROM yourtable) t
WHERE d IS NULL;