2017-11-02 13 views
0

datetimeNULLの関数にCAST()関数を使用しようとしています。SQLクエリのキャスト関数

私のクエリは、このようなものです:あなたが使用する

where [closed_at] = '' or Cast ([closed_at] as datetime) > = '09-01-2011 00:00' 

    and [class_name] in ('Job' ,'Education'); 
+1

NULL条件で、???質問ありますか? –

+0

質問がある場合は、使用しているrdbmsを記述してください(タグを追加してください) –

+1

カラムで 'CAST'を呼び出すと、インデックスが無視されます。それはあいまいな形式のあなたの一定の時間の文字列の問題の横にある。あなたが運が良ければ 'closed_at'はSARGable(通常はISO)形式になるので、テーブル内の根本的な型が決まるまで、文字列を使ってクエリを実行できます。また、あなたのブール論理があなたが望むことをやっていないのはちょっと疑わしいです。もしあなたが 'AND'と' OR'を混ぜるときは、それらのまわりにかっこを入れて意図を示すことができます。 –

答えて

0

where ([closed_at] is NULL or Cast ([closed_at] as datetime) > = '09-01-2011 00:00') and [class_name] in ('Job' ,'Education'); 

または

where Cast (ISNULL([closed_at],'09-01-2011 00:00') as datetime) > = '09-01-2011 00:00') and [class_name] in ('Job' ,'Education'); 
関連する問題