2017-06-08 1 views
0

タイムスタンプを付けた日付でフィルタリングしようとしているデータベースがあります。日付は15年間にわたって発生するため、すべてを1か月間(すべての1月のデータをまとめて)にフィルタリングする必要があります。私はそれがためにエラーを返しますので、私は、そのブレース状態にそれを破ることはできません知っているsqlのデータベース全体で複数の日付をフィルタリングしますか?

where x=y 
and id.number=165 
and {id.date between UNIX_DATE('01-01-2015') and UNIX_DATE('31-01-2015') 
    or id.date between UNIX_DATE('01-01-2016') and UNIX_DATE(-31-01-2016')} 

)私はまた、データをフィルタリングする他の条件がありますが、私は EXをやって物事をフィルタリングする際にロジックがめちゃくちゃになっています私。条件をグループ化して論理が条件A AND条件B AND(日付年A OR日付年B OR日付年Cまたは....)になるようにする方法はありますか?

+0

ご使用のデータベースで質問にタグを付けてください。 –

+0

あなたの選択で月を抽出し、それらをグループ化する必要があります。どのデータベースですか? –

+0

残念ながら、機密データベースです。 – may

答えて

0

ANSI SQL標準は、日付から月を抽出する方法を提供します。

where x = y and 
    id.number = 165 and 
    extract(month from id.date) = 1 

コードを大幅に簡略化する必要があります。すべてのデータベースがextract()をサポートしているわけではありません。ほとんどはextract()またはmonth()のいずれかの機能をサポートします。これらの機能はすべて機能を持っています。

関連する問題