SQL 服务器,语法不正确,转换为日期时间
SQL Server, Incorrect syntax, Convert to datetime
使用 ASP 经典,我想将日期 Tue, 21 Apr 2020 12:23:00 GMT
转换为格式 AAAA-MM-DD HH:MM:SS
以将其插入 SQL Server 2008 数据库。
我的代码:
CONVERT('Tue, 21 Apr 2020 12:23:00 GMT', GETDATE(), 20)
我收到这个错误:
Incorrect syntax to 'Tue, 21 Apr 2020 12:23:00 GMT'.
请注意 SQL 服务器中的日期实际上没有任何内部字符串格式。相反,它们以二进制形式存储。这里的一个选择是采用输入时间戳的以下子字符串,然后使用 TRY_CONVERT
将其编组到 SQL Server:
内的真实日期时间
Tue, 21 Apr 2020 12:23:00 GMT <-- start with this input
21 Apr 2020 12:23:00 <-- convert this string to datetime
示例代码:
WITH yourTable AS (
SELECT 'Tue, 21 Apr 2020 12:23:00 GMT' AS dt
)
SELECT
dt,
TRY_CONVERT(datetime, SUBSTRING(dt, 6, LEN(dt) - 9)) AS dt_out
FROM yourTable;
编辑:
如果您使用的是早期版本的 SQL 服务器,那么您可以使用带有格式掩码 106 的 CONVERT
,使用与上面相同的子字符串:
SELECT
dt,
CONVERT(datetime, SUBSTRING(dt, 6, LEN(dt) - 9), 106) AS dt_out
FROM yourTable;
使用 ASP 经典,我想将日期 Tue, 21 Apr 2020 12:23:00 GMT
转换为格式 AAAA-MM-DD HH:MM:SS
以将其插入 SQL Server 2008 数据库。
我的代码:
CONVERT('Tue, 21 Apr 2020 12:23:00 GMT', GETDATE(), 20)
我收到这个错误:
Incorrect syntax to 'Tue, 21 Apr 2020 12:23:00 GMT'.
请注意 SQL 服务器中的日期实际上没有任何内部字符串格式。相反,它们以二进制形式存储。这里的一个选择是采用输入时间戳的以下子字符串,然后使用 TRY_CONVERT
将其编组到 SQL Server:
Tue, 21 Apr 2020 12:23:00 GMT <-- start with this input
21 Apr 2020 12:23:00 <-- convert this string to datetime
示例代码:
WITH yourTable AS (
SELECT 'Tue, 21 Apr 2020 12:23:00 GMT' AS dt
)
SELECT
dt,
TRY_CONVERT(datetime, SUBSTRING(dt, 6, LEN(dt) - 9)) AS dt_out
FROM yourTable;
编辑:
如果您使用的是早期版本的 SQL 服务器,那么您可以使用带有格式掩码 106 的 CONVERT
,使用与上面相同的子字符串:
SELECT
dt,
CONVERT(datetime, SUBSTRING(dt, 6, LEN(dt) - 9), 106) AS dt_out
FROM yourTable;