sql - Oracle SQL - 根据当前月份定义日期的年份元素
问题描述
我正在尝试根据以下语句在 SQL Developer 中创建一个视图:
SELECT * FROM ORDERS WHERE START_DATE > '01-JUL-2020'
如果当前月份在 7 月和 12 月之间,则日期的 year 元素需要设置为当前日期的年份,否则需要设置为上一年。
下面的语句返回所需的年份,但我不知道如何将它(或更好的替代方案)合并到上面的语句中:
select
case
when month(sysdate) > 6 then
year(sysdate)
else
year(sysdate)-1
end year
from dual
谢谢
解决方案
Oracle 没有内置month
函数,因此我假设这是您创建的用户定义函数。假设是这样,听起来你想要
where start_date > (case when month(sysdate) > 6
then trunc(sysdate,'yyyy') + interval '6' month
else trunc(sysdate,'yyyy') - interval '6' month
end)
推荐阅读
- linux - shell脚本中字符串中的单引号
- angular - 从同一组件中的 EventEmitter 读取值
- php - 如何在 php:5.4-apache docker 中安装 zip 扩展
- python - 查找路线附近的属性(线串)
- c# - UNITY win32异常:系统找不到指定的文件
- docker - Docker Apache 虚拟主机
- javafx - Javafx 线性梯度重复行为
- docker - postgresql的这个官方Dockerfile中的VOLUME有什么用
- python - 如何替换 CSV 文件中的引号和制表符以进行 Pandas 预处理?
- r - 如何使用字符串和数字协调数据框中的列(仅获取数字)?