2つの列を持つテーブルがあります-何らかの理由でintとしてのIDとnvarcharとして保存された日付です。
非クラスター化インデックスが最近IDフィールドに作成されました。クエリで、日付をnvarcharからdateに変換すると、「式をデータ型datetimeに変換する算術オーバーフローエラー」が発生します。例外。
クエリからidフィールドを削除すると、変換は完全に機能します。同様に、クエリから日付フィールドの変換を削除すると、完全に機能します。インデックスを削除すると、元のクエリは完全に機能します。
私の質問は、ID列のインデックスが、無関係だと思う日付列の変換を台無しにするのはなぜですか?
これについての説明は大歓迎です。そしてクエリは:
select e.date ,e.id as id from dbo.table1 e,dbo.table2 d with (nolock)
where e.id=d.id and
convert(datetime,e.date) between convert(datetime,'07/01/2012')
and convert(datetime,'07/02/2012') group by e.date,e.id