如果将月份和年份作为整数值存储在单独的列中,如何进行SQLite日期比较

时间:2013-08-01 17:06:33

标签: sql sqlite date

我的 SQLite 表结构如下:

Table: Income. 
Columns:   IncomeID, IncomeAmount,  IncomeMonth, IncomeYear

如何编写 SQLite 查询以检索给定日期范围之间的收入金额。

我知道,我们需要使用日期函数,但我不知道如何在其中指定两列, 我的意思是 IncomeMonth IncomeYear

1 个答案:

答案 0 :(得分:3)

如果您知道给定日期范围的年份和月份,则不需要日期函数。

如果记录的年份在范围的开始年份之后,或者如果两者都在同一年,如果记录的月份相同或在范围的开始月份之后,则记录在范围内。范围结束的比较类似:

SELECT *
FROM Income
WHERE ( IncomeYear > StartYear OR
       (IncomeYear = StartYear AND IncomeMonth >= StartMonth))
  AND ( IncomeYear < EndYear OR
       (IncomeYear = EndYear   AND IncomeMonth <= EndMonth))