SQL 服务器:从 VARCHAR 转换为 DATETIME
SQL Server : Convert from VARCHAR to DATETIME
当前日期格式:12-18-2018-03:14:48
我要转换为:2018-12-18 03:14
目前正在使用 SQL Server 2008
我使用的代码语法是:
DECLARE @input VARCHAR(35) = '12-18-2018-03:14:48'
SELECT CONVERT(DATETIME, @input, 120)
错误:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
请帮忙。谢谢!
我不确定您当前的日期时间文字是否属于 SQL 服务器可以识别的任何掩码。但是我们可以在这里尝试使用 TRY_CONVERT
,将中间的破折号替换为 space:
SELECT TRY_CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;
18/12/2018 03:14:48
编辑:
如果您使用的是不支持 TRY_CONVERT
的 SQL 服务器的早期版本,那么我们可以尝试明确使用 CONVERT
:
SELECT CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;
当前日期格式:12-18-2018-03:14:48
我要转换为:2018-12-18 03:14
目前正在使用 SQL Server 2008
我使用的代码语法是:
DECLARE @input VARCHAR(35) = '12-18-2018-03:14:48'
SELECT CONVERT(DATETIME, @input, 120)
错误:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
请帮忙。谢谢!
我不确定您当前的日期时间文字是否属于 SQL 服务器可以识别的任何掩码。但是我们可以在这里尝试使用 TRY_CONVERT
,将中间的破折号替换为 space:
SELECT TRY_CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;
18/12/2018 03:14:48
编辑:
如果您使用的是不支持 TRY_CONVERT
的 SQL 服务器的早期版本,那么我们可以尝试明确使用 CONVERT
:
SELECT CONVERT(datetime, STUFF(@input, 11, 1, ' ')) AS output;