1. 时间和时间戳之间转换 1.1 日期转时间戳 select extract(epoch from to_timestamp('2019-03-26 14:37:26', 'yyyy-MM-DD hh24:mi:ss')); 新纪元时间 Epoch 是以 1970-01-01 00:00:00 格林威治为标准的时间,将目标时间与 1970-01-01 00:00:00时间的差值以秒来计算。 extract 主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据。 1.2 时间戳转日期 select to_timestamp(1552372646);

2. 日期格式转换 2.1 当前时间 select now(); select current_timestamp; select current_time; select current_date;

2.2 当前年月日 select current_date date 2.3 当前年当前月 select extract(year from now()); select extract(month from now()); 2.4 上月天数 select EXTRACT(DAY from date_trunc('month', CURRENT_DATE) - interval '0 month' - interval '1 day'); 2.5 获取年月日 select to_date('2012-08-20 11:12:11','yyyy-mm-dd'); select date_trunc('day', timestamp'2012-08-20 11:12:11'); 2.6 日期加几天 select date '2001-09-28' + integer '7'; 2.7 两日期间隔天数 select date '2001-10-01' - date '2001-09-28'; 2.8 两时间相减 select timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00'; 2.9 字符串先转成日期再转成字符串 select to_char(to_date('2012-08-20 11:12:11','yyyy-mm-dd'), 'yyyy-mm-dd'); 2.10 时间函数 select age(now(), timestamp '1989-02-05');