我需要编写一些SQL来确定当前月份是否基于指定日期的四分之一。
如果我给它' 2015-04-09',该函数应该确定月份是否等于1,4,7或10.如果我给它' 2015-05 -09',它将是2,5,8,11等等......
如果整个解决方案在SELECT语句中是自包含的,那么它将最有效。我不太确定如何处理这个问题,我无法找到适合我情况的任何东西。我不关心这一天或一年,我只需要验证月份。
答案 0 :(得分:1)
您可以使用month()
提取月份,然后使用模运算。像这样:
select (case when mod(month($input) - month($thedate), 3) = 0 then 1
else 0
end)
答案 1 :(得分:1)
看起来你想知道这个表达式何时为真:
(mod(EXTRACT(MONTH FROM SYSDATE()), 3)) = (mod(EXTRACT(MONTH FROM <input date>), 3))
答案 2 :(得分:0)
如果您有一个四分之一数字,并且想要获取一个四分之一开始的月份:
QuarterNo * 3 - 2
如果要获取季度号,请给出月份号:
floor((MonthNo-1) /3) +1
如果您有日期列,并且想要季度数字,请使用:
DATEPART(qurter, date_column)