何らかの理由で、日付が 1yymmdd のように入力されるデータベースがあります。この日付に 30 日を追加するクエリでフィールドを作成するように依頼されました。次のようにして、日付を読み取り可能な形式に変換しました。
SUBSTRING(Datefield, 4, 2) + '/' + SUBSTRING(Datefield, 6, 2)
+ '/' + SUBSTRING(Datefield, 2, 2) AS LookLikeDate
これをビューに配置し、次のことを試みました。
DATEADD(dd,30, CONVERT(datetime, v.[LookLikeDate], 103)
というエラーが表示され続けます
varchar データ型を datetime データ型に変換すると、範囲外の値になりました。
次に、このフィールドが最初から日時になるように View ステートメントで定義しようとしました。
CONVERT(datetime, SUBSTRING(Datefield, 4, 2) + '/'
+ SUBSTRING(Datefield, 6, 2) + '/'
+ SUBSTRING(Datefield, 2, 2), 103) AS LookLikeDate
その定義でエラーが発生したとき、ビューをまったく使用できなかったので、datetime を Char(8) に変更しました。これにより、以前に発生したのと同じ varchar エラーが発生しました。
このばかげた日付形式にこれらの日を追加する方法はありますか?