[SQL]获取年月日

使用postgresql获取当前或某一时间段的年月日

获取当前时间

SELECT now();
-- 返回当前日期及时间,返回 2024-02-07 14:48:33.005088

SELECT current_timestamp;
-- 返回当前日期及时间,返回 2024-02-07 14:48:33.005088

SELECT current_date;
-- 返回当前日期,返回 2024-02-07

SELECT current_time;
-- 返回当前时间,返回 14:48:33

时间运算

获取当前月/年份第一天

SELECT date_trunc('month',current_date)::DATE;
-- 返回本月的第一天,返回 2024-02-01

SELECT date_trunc('year',current_date)::DATE;
-- 返回本年的第一天,返回 2024-01-01

根据当前日期获取前/后一年/月

select (current_date + INTERVAL '1 day')::DATE;
--根据当前日期获取次日,返回: 2024-02-08

select date_trunc('month',(current_date + INTERVAL '1 month'))::DATE;
--根据当前日期获取次月,返回:2024-03-07

select (current_date - INTERVAL '1 YEAR')::DATE;
--根据当前日期获取上一年,返回:2024-02-07

获取当月最后一天

select (date_trunc('month',current_date) + interval'1 month - 1 day')::DATE;
--首先用date_trunc函数获取当月的第一天的日期,接着再加一个月,最后再减一天,返回:2024-02-29

时间截取

截取年月日

SELECT to_char(CURRENT_TIMESTAMP, 'yyyy-mm');
--- 返回 2024-02

截取时分秒

SELECT substr(to_char(CURRENT_TIMESTAMP, 'yyyy-mm-dd hh24:mi:ss'),12,8);
--返回:15:19:34

[参考]:
使用postgresql获取当前或某一时间段的年月日