在TSQL插入中将日期字符串插入datetime2

时间:2015-07-23 15:43:21

标签: sql-server tsql insert datetime-format datetime2

我需要在Microsoft Sql Server的QUEUE表中插入日期字符串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,但它失败了。

2 个答案:

答案 0 :(得分:4)

正如所指出的,转换的语法有点偏。语法应如下所示:

SELECT CONVERT(datetime,'Sep 09 12:18:52 2014')

答案 1 :(得分:0)

Dane的转换有效,但如果日期作为字段或变量传递,其中包括开头一周的3个字母的日期(如您的示例),它似乎仍然失败。假设前4个字符总是星期几和空格,你可以使用RIGHT和LEN来调整Dane的例子。

SELECT CONVERT(datetime,RIGHT('Tue Sep 09 12:18:52 2014',LEN('Tue Sep 09 12:18:52 2014')-4))