在 SQL 插入中将日期字符串插入到 datetime2
Insert date string to datetime2 in TSQL insert
我需要在 Microsoft Sql 服务器的 QUEUE table 中插入一个日期字符串作为 DATETIME2。
数据库结构:
CREATE TABLE "QUEUE" (
ID INT PRIMARY KEY NOT NULL,
TEAMID VARCHAR(550) ,
STATUS VARCHAR(50) ,
MSG VARCHAR(50) ,
TIME DATETIME2,
ERROR VARCHAR(10) ,
);
INSERT INTO QUEUE VALUES(2,'c33','ok','FoundID',CONVERT('Tue Sep 09 12:18:52 2014' AS DateTime2),'OK');
值 'Tue Sep 09 12:18:52 2014' 应转换为 datetime2 格式,如 2014-09-09 12:18:52.000000 并应插入。
我尝试了 CAST 和 COVERT,但都失败了。
正如所指出的那样,convert 的语法有点不对劲。语法应如下所示:
SELECT CONVERT(datetime,'Sep 09 12:18:52 2014')
Dane 的转换有效,但如果将日期作为字段或变量传递,其中包括开头的 3 个字母的星期几(如您的示例),它似乎仍然失败。假设前 4 个字符始终是星期几和 space,您可以使用 RIGHT 和 LEN 调整 Dane 的示例。
SELECT CONVERT(datetime,RIGHT('Tue Sep 09 12:18:52 2014',LEN('Tue Sep 09 12:18:52 2014')-4))
我需要在 Microsoft Sql 服务器的 QUEUE table 中插入一个日期字符串作为 DATETIME2。
数据库结构:
CREATE TABLE "QUEUE" (
ID INT PRIMARY KEY NOT NULL,
TEAMID VARCHAR(550) ,
STATUS VARCHAR(50) ,
MSG VARCHAR(50) ,
TIME DATETIME2,
ERROR VARCHAR(10) ,
);
INSERT INTO QUEUE VALUES(2,'c33','ok','FoundID',CONVERT('Tue Sep 09 12:18:52 2014' AS DateTime2),'OK');
值 'Tue Sep 09 12:18:52 2014' 应转换为 datetime2 格式,如 2014-09-09 12:18:52.000000 并应插入。
我尝试了 CAST 和 COVERT,但都失败了。
正如所指出的那样,convert 的语法有点不对劲。语法应如下所示:
SELECT CONVERT(datetime,'Sep 09 12:18:52 2014')
Dane 的转换有效,但如果将日期作为字段或变量传递,其中包括开头的 3 个字母的星期几(如您的示例),它似乎仍然失败。假设前 4 个字符始终是星期几和 space,您可以使用 RIGHT 和 LEN 调整 Dane 的示例。
SELECT CONVERT(datetime,RIGHT('Tue Sep 09 12:18:52 2014',LEN('Tue Sep 09 12:18:52 2014')-4))