【发布时间】:2020-08-05 10:40:24
【问题描述】:
我有一个配置有西班牙语设置的数据库,当我使用文字日期时间作为 yyyy-mm-dd 时,我得到一个 varchar 超出范围转换错误。
select convert(datetime, '2014-11-19')
返回
Msg 242, Level 16, State 3, Line 3 La conversión del tipo de datos varchar en datetime produjo un valor fuera de intervalo。
我必须以西班牙语格式编写这些日期时间。这工作正常:
select convert(datetime, '2014-11-19')
我不应该同时使用西班牙语和 yyyy-mm-dd 格式吗?我不想使用西班牙语格式,因为新客户可能会使用具有不同区域设置的相同数据库。
我对日期文字没有任何问题,只有日期时间。这适用于西班牙语和 yyyy-mm-dd 格式。
select convert(date, '2014-11-19'),
convert(date, '19-11-2014')
谢谢。
【问题讨论】:
-
使用 datetime2 格式适用于欧洲日期 - 如果您真的需要在 datetime 中使用它,您可以对其进行双重转换,即 select convert(datetime,(convert(datetime2, '2014-11-19') ))
标签: sql-server sql-server-2017