0

有一些与此相关的帖子,但我对 TSQL 很陌生,所以我无法理解它们,所以请原谅。

我的程序有:

    BEGIN TRY

        INSERT INTO  dbo.myprocedure(
         Mydate

     )
     VALUES(
     CONVERT(DATETIME, @mydate, 102)
)

如果我以这种方式执行它:

EXEC mydbo.dbo.myprocedure @mydate = 'May 8 2012 9:21AM'  

我收到此错误:从字符串转换日期时间时转换失败。

我该如何解决这个问题?

太感谢了

4

3 回答 3

1

如果您查看CONVERT 的文档,您会看到格式 102 是 ANSI 格式,或者yyyy.mm.dd. 所以传递一个日期2012.05.08应该是可行的。

它看起来像2012.05.08 9:41并且2012.05.08 9:41AM也会起作用,但这超出了记录的格式。

于 2012-05-08T07:42:55.203 回答
0

也许是这样的:

EXEC mydbo.dbo.myprocedure @mydate = '2012/05/08 09:21:00'  
于 2012-05-08T07:39:20.423 回答
0

更改CONVERT(DATETIME, @mydate, 102)CONVERT(DATETIME, @mydate, 100)

要不就CONVERT(DATETIME, @mydate)

参考MSDN 上的CAST 和 CONVERThttp://www.sqlusa.com/bestpractices/datetimeconversion/

于 2012-05-08T07:41:12.753 回答