非常に多くのことが間違っています。
datetime を datetime に変換することに関するコメントは適切です。なぜあなたはこれをやっている?そして、なぜあなたの日時があいまいな形式になっているのですか? それが8月11日なのか11月8日なのか、まったくわかりません。を使ってみてくださいyyyymmdd
。
これを行う必要があると仮定すると、なぜ動的 SQL で行うのでしょうか?
動的 SQL が必要だと仮定すると、ステートメントが不完全なのはなぜですか? 値の前後に文字列の区切り文字を入れたとしても、これは何をするのでしょうか?
CONVERT(DATETIME, '20131108');
ああ、そうです。
メッセージ 156、レベル 15、状態 1
キーワード「CONVERT」付近の構文が正しくありません。
声明は完全ではありません。だから多分あなたは意味した:
EXEC('SELECT CONVERT(DATETIME,'''+@ALISTARIHI+''')')
しかし実際には、代わりに次のようなものが必要になるでしょう:
DECLARE @sql NVARCHAR(MAX) = N'SELECT CONVERT(DATETIME, @d);';
EXEC sp_executesql @sql, N'@d DATETIME', @ALISTARIHI;
しかし、日時を日時に変換する理由はまだわかりません。
PSなぜ変数にそんなに長くて入力しにくい名前を付けるのですか?