1

テーブルからの日付が次のように変換されるビューを作成しました

convert(varchar, date, 103) 

エイリアスをDATE1として取得し、次のようにクエリを記述しました。

select DATE1  
from date_demo
WHERE  MONTH(DATE1) = '12'

month = 'december' が 12 の特定のレコードのみを取得したい

エラーが発生しました:

char データ型から datetime データ型への変換により、範囲外の datetime 値が発生しました。

これは SQL Server 2005 にあります。助けてください

4

1 に答える 1

2

デビッドが提案したように、文字列に変換してから日時列に戻すのではなく、日付列を使用する必要があります。

ただし、日時に戻す場合は、日時スタイルを指定する必要があります

select DATE1  from date_demo
WHERE  MONTH(convert(datetime,DATE1,103))= '12'

さらに、varchar データ型の長さを指定する必要があります 長さのない varchar の宣言をキックするには、この記事の悪い習慣を読んでください

于 2013-03-27T05:48:33.890 に答える