如何使用Firebird显示除当前月份之外的所有数据?

时间:2015-03-06 11:34:19

标签: sql firebird

我应该使用什么命令来显示所有数据,不包括当月?例如现月是3.2015

我的数据库结构

Doc_Code     Doc_Date
BM123431     3.4.2013  or older
BM123423     12.6.2013
BM123456     13.6.2013
BM331234     10.8.2013
BM123423     9.9.2014
BM544223     12.10.2014
BM123454     6.3.2015

1 个答案:

答案 0 :(得分:0)

假设您将来没有日期的记录且实际上是日期,而不是TIMESTAMP,您可以使用{{SELECT doc_code, doc_date FROM mytable WHERE doc_date <= DATEADD(-1 * EXTRACT(DAY FROM CURRENT_DATE) DAY TO CURRENT_DATE) 来提取日期来确定日期限制。 3}}并使用EXTRACT从当前日期减去它。结果是上个月的最后一天:

SELECT doc_code, doc_date
FROM mytable
WHERE NOT (
   EXTRACT(MONTH FROM doc_date) = EXTRACT(MONTH FROM CURRENT_DATE) 
   AND EXTRACT(YEAR FROM doc_date) = EXTRACT(YEAR FROM CURRENT_DATE)
)

如果您将来还有日期,而您只想排除当前月份,那么您还可以执行类似

的操作
{{1}}

如果您的所有日期都在过去,这也会有效,并且它也可以使用时间戳而不是日期,但对于大量记录来说可能不太适合。