如果仅按日和月将两个日期与 Oracle SQL 进行比较

Posted

技术标签:

【中文标题】如果仅按日和月将两个日期与 Oracle SQL 进行比较【英文标题】:Compare two dates with Oracle SQL if it's same date by only day and month 【发布时间】:2014-02-17 13:55:49 【问题描述】:

我在我的 oracle 数据库中保存了一个日期。 (模式:dd.MM.yyyy) 现在我必须按日和月检查/比较,如果今天是同一日期或正好 6 个月后。但这一年不得不被忽略。例如。我的日期是 01.02.2001。然后它必须在 01.02.2002 是“真实的”。

我还需要检查日期 + 6 个月是否为真。 (每半年)。 (例如 01.02.2002 --> 01.08.2002)

我尝试使用 sysdate,但我是 sql 的菜鸟。

【问题讨论】:

你的日期数据类型真的是日期还是字符串? 【参考方案1】:

您可以使用to_char()进行比较:

where to_char(yourdate, 'MM-DD') = to_char(sysdate, 'MM-DD')

六个月:

where to_char(yourdate, 'MM-DD') = to_char(add_months(sysdate, 6), 'MM-DD')

【讨论】:

我必须更改日期模式还是可以像您的示例一样保留它? @c0dev 。 . .我不知道你的意思。 date 数据类型以您无法控制的内部格式存储日期。假设你的专栏是date,那么上面的应该可以工作。【参考方案2】:

你也可以使用

substr(date1,5) =substr(date2,5)

此代码比较数据的前五个字符并检查它们是否相同。

【讨论】:

以上是关于如果仅按日和月将两个日期与 Oracle SQL 进行比较的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 数据库 SQL 转换 只取 年和月

ORACLE 数据库 SQL 转换 只取 年和月

按日和月对数据进行排序(忽略年份)python pandas

SQL按月统计,按日分组

SQL数据库中怎么将时间格式转换到年和月?

如何在oracle sql developer中按年和月分组获取当前财政年度的数据?