在运行 SQL 将我的数据类型值从​​ varchar 转换为 datetime 时,我遇到了以下错误。



我检查了数据,没有看到任何奇怪的东西:运行以下检查,都没有返回任何结果

SELECT [Date] from table where [DATe] is null
SELECT [Date] from table where [DATe] = ''
SELECT [Date] from table where LEN([date])> 10
SELECT [Date] from table where LEN([date])< 10
SELECT top 100 [Date] , SUBSTRING([date],4,2) from [table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 12
SELECT top 100 [Date] , SUBSTRING([date],1,2) from table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 31

还有什么值得一看的,也许值得任何指示或帮助解决这个问题?似乎无法深究。

最佳答案

一周前我遇到了同样的问题。
问题在于时区设置。以其他格式指定,例如 mm/dd/yyyy(通常有效)。

将日期指定为 30/12/2013 导致我出错。但是,将其指定为 mm/dd/yyyy 格式有效。

如果您需要转换您的输入,您可以尝试查看 CONVERT 方法。
语法是
CONVERT(VARCHAR,@your_date_Value,103)CONVERT(VARCHAR, '12/30/2013', 103)
整理 103 是日期时间格式。

有关转换格式和进一步阅读,请参阅此链接。
https://www.w3schools.com/sql/func_sqlserver_convert.asp

关于sql-server - SQL - varchar 数据类型到 datetime 数据类型的转换导致值超出范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20838344/

10-13 08:39
查看更多