从字符串转换日期和/或时间时转换失败?

时间:2014-03-26 04:18:28

标签: sql sql-server stored-procedures

我试图按如下方式创建一个程序:

CREATE PROC prc_invoice_add
AS
BEGIN
insert into INVOICE
(INV_NUMBER,CUS_CODE,INV_DATE)
VALUES (8006,1000,cast('30-APRL-08 00:00:00 AM ' as DATETIME2))
END

但每当我执行此程序时,都会弹出以下错误消息:

  

“从字符串转换日期和/或时间时转换失败”。

3 个答案:

答案 0 :(得分:2)

试试这个,

CREATE PROC prc_invoice_add
AS
BEGIN
insert into INVOICE
(INV_NUMBER,CUS_CODE,INV_DATE)
VALUES (8006,1000,cast('30-APR-08 00:00:00 AM ' as DATETIME2))
END

您的日期格式为dd-MMM-yyyy,格式为APRIL为apr。

答案 1 :(得分:1)

问题出在 Aprl

将其传递为 4月 4月

试试这个

CREATE PROC prc_invoice_add
AS
BEGIN
insert into INVOICE
(INV_NUMBER,CUS_CODE,INV_DATE)
VALUES (8006,1000,cast('30-APRIL-08 00:00:00 AM ' as DATETIME2))
END

答案 2 :(得分:0)

使用转换,专门用于投射日期时间。

CONVERT(DATETIME2,'30-APR-08 00:00:00 AM',113)