有与此相关的一些文章,但我很新TSQL,我不能让他们的感觉,所以请原谅我。
我的程序有:
BEGIN TRY
INSERT INTO dbo.myprocedure(
Mydate
)
VALUES(
CONVERT(DATETIME, @mydate, 102)
)
如果我执行这种方式:
EXEC mydbo.dbo.myprocedure @mydate = 'May 8 2012 9:21AM'
我得到这个错误:从字符串转换日期时间时,转换失败。
我该如何解决这个问题?
太感谢了
如果你看的CONVERT文件 ,你会看到格式102是ANSI格式,或yyyy.mm.dd
。 因此,通过像一个日期2012.05.08
应该工作。
它看起来像2012.05.08 9:41
和2012.05.08 9:41AM
也可以工作,但是这是记录格式之外。
也许是这样的:
EXEC mydbo.dbo.myprocedure @mydate = '2012/05/08 09:21:00'
变化CONVERT(DATETIME, @mydate, 102)
以CONVERT(DATETIME, @mydate, 100)
或者只是CONVERT(DATETIME, @mydate)
参考CAST和CONVERT和http://www.sqlusa.com/bestpractices/datetimeconversion/ MSDN上