【发布时间】:2021-04-27 07:38:59
【问题描述】:
我想子结构 2 个日期(当前日期和 hairdressing_date)以从表中获取结果以表示过去 2 年的数据。 我有以下 SELECT 语句:
SELECT count(c_id)
INTO counter
FROM RESERVATIONS r
WHERE r.customer_id = 1
AND (Sysdate - r.hairdressing_date) / 365 < 2;
这是自定义的,但我不确定代码中的“/365”部分。
如何正确获取所需数据? 你能写出这行的正确实现吗?
【问题讨论】:
-
不幸的是,这已被标记为带有问题的重复项,因此无法给出新答案,但链接的问题不在过滤器的上下文中。您应该知道,最好不要对要过滤的列使用函数 - 这意味着需要为与其他过滤器匹配的每一行评估表达式,这需要工作并且意味着不会使用简单的索引(并且优化器将很难估计基数)。在这种情况下:
r.hairdressing_date > add_months(sysdate,-24)可能是你真正想要的