单纯的获取年份
SELECT generate_series(
EXTRACT(YEAR FROM start_date::date)::int, -- 起始年份
EXTRACT(YEAR FROM end_date::date)::int -- 结束年份
) AS year
FROM table where id = '123456789';
1.generate_series 函数是生成一个范围的序列,参数为开始和结束值
2.EXTRACT(YEAR FROM start_date::date) 和 EXTRACT(YEAR FROM end_date::date) 会将 start_date 和 end_date 转换为 DATE 类型,然后提取年份。确保 start_date 和 end_date 是有效的日期类型
如果想将获取的年份当做下拉框的待选值,设置value:text
SELECT
ROW_NUMBER() OVER () AS serial_number, -- 序号
year
FROM (
SELECT generate_series(
EXTRACT(YEAR FROM start_date::date)::int, -- 起始年份
EXTRACT(YEAR FROM end_date::date)::int -- 结束年份
) AS year
FROM itsm_contract_management
WHERE itsm_id = 'b5d63efa100c4a5a9c8c160f21f60a54'
) AS tab order by year ;