【发布时间】:2021-01-16 15:35:59
【问题描述】:
我在比较日期范围时遇到问题。我必须验证某个月份和年份内的日期。月份和年份是整数值。
注意:我正在使用 Oracle 数据库的 OUTSYSTEMS 聚合
查询的两个结果示例:
Start Date End Date
1 2020-08-16 2020-10-14
2 2019-11-01 2020-08-15
案例 1
输入:
Month = 9
Year = 2020
预期结果:
Start Date End Date
1 2020-08-16 2020-10-14
案例 2
输入:
Month = 8
Year = 2020
预期结果:
Start Date End Date
1 2020-08-16 2020-10-14
2 2019-11-01 2020-08-15
案例 3
输入:
Month = 3
Year = 2020
预期结果:
Start Date End Date
2 2019-11-01 2020-08-15
案例 4
输入:
Month = 10
Year = 2019
预期结果:无行
选择采用 Java 方式。我正在使用像 Month() 和 Year() 这样的系统函数将行转换为整数。
这样
((Month(StartDate) <= Month and Month(EndDate) = Month)
and
(Year(StartDate) <= Year and Year(EndDate) = Year))
or
((Month(StartDate) <= Month and Month(EndDate) = Month)
and
(Year(StartDate) <= Year and Year(EndDate) = Year))
上面的代码不起作用。我尝试了许多组合但没有成功。我没有特殊的比较功能。对于我的分析,我有四个场景要创建,以显示我正在研究的月份和年份中包含的日期。但我没有让代码工作。有人可以为我照亮道路
【问题讨论】:
-
请用您正在运行的数据库标记您的问题:mysql、sql-server、postgresql...?日期函数是高度特定于供应商的
-
谢谢。我正在使用 Outsystems 聚合。
-
我不认为 Outsystems Aggregates 是一个数据库(至少基于标签信息)。您需要找出应用程序背后的数据库是什么。
-
好的。是甲骨文。但我需要汇总使用(所以我指的是sintax bove)。谢谢
-
Oracle 没有
year()和month()函数 - 因此在该数据库中,您现有的代码会引发编译错误。
标签: java sql oracle datetime outsystems