簡體   English   中英

在SQL中跨數據庫過濾多個日期?

[英]filtering multiple dates across database in sql?

我有一個數據庫,我試圖按時間戳日期過濾掉。 由於日期發生在15年的時間跨度內,因此我想按月過濾所有內容(將所有1月份的數據一起過濾)。 我也有其他條件來過濾數據,但是當我過濾做事時,邏輯就搞砸了)

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')}

我知道我無法將其分解為那種支撐狀態,因為它會為我返回錯誤。 有沒有一種方法可以將條件分組在一起,因此邏輯是conditionA AND conditionB AND(dateyearA或dateyearB或dateyearC或...)?

ANSI SQL標准提供了一種從日期中提取月份的方法。 您應該使用:

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

那應該大大簡化您的代碼。 並非所有數據庫都支持extract() 大多數都支持extract()month()函數。 所有人都使用某些功能具有此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM