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:412012.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 と CONVERT およびhttp://www.sqlusa.com/bestpractices/datetimeconversion/への参照

于 2012-05-08T07:41:12.753 に答える