2016-06-13 4 views
0

内の文字列からdatetime型に変換するときに私は、SQL Server 2008を使用していますし、生産に我々は唯一の本番サーバーでSQL Server 2005を持っていなかった私はエラーを取得しています:変換は私のローカルサーバーでSQL Server 2005の

Conversion failed when converting datetime from character string this error

トリガーを実行中。

これは私のコードです:

SET @nextSemesterValue = (select min(semesterYear * 100 + Month(semesterType + ' 1 2000')) as yearmonth 
          from table 
          where (semesterYear * 100 + Month(semesterType + ' 1 2000')) > YEAR(getdate()) * 100 + MONTH(getdate()) 
          and courseId = @courseId) 

ここsemsterYearInteger列で、semesterTypeは文字列です。

上記のコードに問題はありますか?私を助けてください。事前

+0

はいの下であなたの取得月のコードを置き換えます。問題があります。そうでなければ、エラーは発生しません。しかし、より詳細な情報が必要です。semesterTypeにはどのような価値がありますか?適切な方向を指すために、変換が成功する値はありますか?ある場合は、これらの値と変換が成功しなかった値との違いは何ですか? –

+0

semesterTypeには1月、5月、9月が含まれている可能性があります –

+0

これはトリガーですが、どこが失敗しているのか正確にはわかりませんが、上記のコードで問題が発生していると思われます –

答えて

0

シンプルで

おかげでコード

DATEPART(MONTH,semesterType + ' 1 2000') 
+0

質問のコメントを読む - 学期の種類は、月の番号ではなく、月の番号を保持します。 –

+0

ok私の更新された答えを見ても問題ありません –

+0

同じ理由で同じエラーが発生します。 –