在 SQL 的 month/day 级别定义季节
Define seasons at month/day level in SQL
我需要将日期按季节分组,但在 DAY-MONTH
级别,如下所示:
IFF(DATE BETWEEN 21.03 AND 21.06 THEN SPRING
22.06-22.09 = SUMMER
23.09-21.12 = AUTUMN
22.12-20.03 = WINTER)
我试过串联和 between
但运气不好。
试试下面的方法
CASE WHEN TO_VARCHAR(date_c,'DD-MM') BETWEEN '21-03' AND '21-06' THEN 'SPRING' END
IFF function allows a single condition. Use CASE 代替。
例子:
CASE
WHEN to_varchar(DATE,'DDMM') between '2103' and '2006' then 'SPRING'
WHEN to_varchar(DATE,'DDMM') between '2106' and '2209' then 'SUMMER'
WHEN to_varchar(DATE,'DDMM') between '2309' and '2012' then 'AUTUMN'
ELSE 'WINTER'
END
使用case
。使用字符串。并使用正确的日期格式:
(CASE WHEN to_char(DATE, 'MMDD') between '0321' and '0621' then 'SPRING'
WHEN to_char(DATE, 'MMDD') between '0622' and '0922' then 'SUMMER'
WHEN to_char(DATE, 'MMDD') between '0923' and '1220' then 'AUTUMN'
ELSE 'WINTER'
END)
我需要将日期按季节分组,但在 DAY-MONTH
级别,如下所示:
IFF(DATE BETWEEN 21.03 AND 21.06 THEN SPRING
22.06-22.09 = SUMMER
23.09-21.12 = AUTUMN
22.12-20.03 = WINTER)
我试过串联和 between
但运气不好。
试试下面的方法
CASE WHEN TO_VARCHAR(date_c,'DD-MM') BETWEEN '21-03' AND '21-06' THEN 'SPRING' END
IFF function allows a single condition. Use CASE 代替。
例子:
CASE
WHEN to_varchar(DATE,'DDMM') between '2103' and '2006' then 'SPRING'
WHEN to_varchar(DATE,'DDMM') between '2106' and '2209' then 'SUMMER'
WHEN to_varchar(DATE,'DDMM') between '2309' and '2012' then 'AUTUMN'
ELSE 'WINTER'
END
使用case
。使用字符串。并使用正确的日期格式:
(CASE WHEN to_char(DATE, 'MMDD') between '0321' and '0621' then 'SPRING'
WHEN to_char(DATE, 'MMDD') between '0622' and '0922' then 'SUMMER'
WHEN to_char(DATE, 'MMDD') between '0923' and '1220' then 'AUTUMN'
ELSE 'WINTER'
END)