我正在尝试根据 sysdate 计算当前学年。
由于学年通常从(大约)八月到五月,我需要查看当前月份是什么,以确定我们实际在哪个学年。
例如,如果当前月份是 2013 年 5 月,那么它将是 2012-2013 学年。但是,如果当前月份是 2013 年 9 月,那么它将是 2013-2014 学年。
我怀疑我的方法很遥远,有一种更简单的方法可以实现这一点,但这是我现在正在使用的 sql 代码部分:
WHERE to_date(ps_customfields.getStudentscf(s.id,'VolTran_ExpDate'),'MM/DD/YYYY') BETWEEN
CASE
WHEN to_char(sysdate,'MM') < '08' THEN '08/01'||(to_char(sysdate,'YYYY')-1) and '08/01/'||to_char(sysdate,'YYYY')
WHEN to_char(sysdate,'MM') >= '08' THEN '08/01'||to_char(sysdate,'YYYY') and '08/01/'||(to_char(sysdate,'YYYY')+1)
END
ps_customfields.getStudentscf(s.id,'VolTran_ExpDate') 字段是纯文本字段,这就是我将其转换为日期的原因。
我使用此特定代码在 SQLDeveloper 中遇到的错误是“ORA-00905:缺少关键字”,但我无法确定我缺少的内容。
任何人都可以提出一个更优雅的方式来完成这个吗???
谢谢你