【发布时间】:2019-09-07 16:02:31
【问题描述】:
我想知道是否有办法获取上个月的记录?例如,如果运行以下查询,则查询应为 2019 年 1 月 4 日至 2019 年 4 月 30 日(4 月 1 日至 4 月 30 日)之间的交易提供输出。
select * from table where transdate>='01-01-2019' and transdate <='31-05-2019'
Sample data
TRANSDATE LABOR Hours
01-01-2019 A 2.5
23-01-2019 B 1.0
01-02-2019 B 3.0
12-03-2019 A 0.5
02-04-2019 A 1.5
12-04-2019 B 4.5
17-04-2019 B 2.0
22-04-2019 C 2.5
12-05-2019 A 3.5
Expected Output
TRANSDATE LABOR Hours
Apr-2019 A 1.5
Apr-2019 B 6.5
Apr-2019 C 2.5
【问题讨论】:
-
您的问题是要求提供一个月的数据,但您的
WHERE子句要求提供整个 1 月到 5 月的数据。你真正想要哪一个? -
是的,用户会输入 3 个月或 6 个月的日期,但有一个部分的数据应该只显示单月数据,因此我想知道这是否可能。
-
@max092012 请提供数据示例和所需结果。
-
@MarkBarinstein 用示例数据编辑了我的问题。
-
旁注:绝对不要对日期/时间类型使用包含上限 (
<=),尤其是在处理“月末”时。你会发现说“比下个月的开始时间少”远更容易——也就是说,一个专属的上限 (<)——你会惊讶于有多少人忘记了跳跃天...
标签: db2