首页 > 解决方案 > T-SQL CONVERT 无法提供 ISO 格式的字符串 + 样式

问题描述

在使用 ISO 格式的字符串时,我遇到了一个我没想到会看到的错误CONVERT,但只有在指定样式代码时才会出现(我尝试了一些,但它们都抛出了错误)。

例如,这成功并以我的本地格式返回日期时间:

select CONVERT(datetime, '2020-01-15T00:00:00')

但这失败并出现错误

将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

select CONVERT(datetime, '2020-01-15T00:00:00', 103)

我觉得我必须在这里遗漏一些非常基本的东西。谁能解释一下?

标签: sqlsql-server

解决方案


103 强制格式为convert().

否则,convert()您可以提供的格式有些灵活。 它不仅使用默认格式。

实际上,您的格式是日期/时间值的标准格式。因此,无论本地设置如何,它都可以识别。同样,无论本地设置如何,字符串YYYYMMDD始终被识别为有效日期。


推荐阅读