5
varcharデータ型をdatetimeデータ型に変換すると、範囲外の値が発生しました
11月に作成されたすべての行を取得する簡単なクエリを実行しようとしています。 SELECT COUNT(*) FROM dbo.profile WHERE [Created] BETWEEN '2014-11-01 00:00:00.000' AND '2014-11-30 23:59:59.997'; SMSSは次を返します: varcharデータ型をdatetimeデータ型に変換すると、値が範囲外になりました。 'Created'がdatetimeに設定されているときに、データがvarcharからdatetimeに変換される理由がわかりません。 「作成済み」が日時であることをサーバーに通知する必要がありますか?そうでない場合、なぜこのvarcharメッセージが表示されるのですか? 編集:データベースの値はでしたYYYY-MM-DD。以下の@SqlZimからの返信は、convert()を使用してSQLにdbの日付の形式を伝え、スペース文字を文字Tで置き換える必要があることを示しています。 select count(*) from dbo.profile where [created] between convert(datetime,'2014-11-01T00:00:00.000') and convert(datetime,'2014-11-30T23:59:59.997');`