如果仅按日和月将两个日期与 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 进行比较的主要内容,如果未能解决你的问题,请参考以下文章