PostgreSQL中获取本周、本月和本年等等日期函数-年月日time

获取当前日期时间

select now();

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第1张图片

select current_timestamp;

 PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第2张图片

select to_char( now(),'yyyy-mm-dd hh:mi:ss');

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第3张图片  

注意:如果是表的话,从时间戳字段中提取小时(hh24):

select to_char(时间戳字段,'yyyy-mm-dd hh24:mi:ss');

hh默认是12,可指定:hh12,hh24。 

获取当前日期

select current_date;

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第4张图片

select to_char( now(),'YYYY-MM-DD');

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第5张图片

获取当前时间

select current_time;

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第6张图片

 获取昨天、上周、上月、上年的日期

select to_char( now() - interval '1 day','yyyy-mm-dd');
select to_char( now() - interval '1 week','yyyy-mm-dd hh:mi:ss');
select to_char( now() - interval '1 month','yyyy-mm-dd');
select to_char( now() - interval '1 year','yyyy-mm-dd');

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第7张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第8张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第9张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第10张图片

获取前年的年份

select to_char( now() - interval '2 year','yyyy');

 PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第11张图片

获取今天、今月、今年的开始的日期时间-基于date_trunc()

select date_trunc('year', now())
select date_trunc('month', now())
select date_trunc('day', now())
select date_trunc('hour', now())
select date_trunc('minute', now())
select date_trunc('second', now())

 PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第12张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第13张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第14张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第15张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第16张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第17张图片

获取今天、今月、今年的记录

select * from testdb where timestamp_start >= date_trunc( 'day', now() );
select * from testdb where timestamp_start >= date_trunc( 'month', now() );
select * from testdb where timestamp_start >= date_trunc( 'year', now() );

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第18张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第19张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第20张图片

获取最近1秒,1分,1小时,1天,1周(7天),1月,1年的记录 

select * from testdb where timestamp_start >= current_timestamp - interval ' 1 seconds '
select * from testdb where timestamp_start >= current_timestamp - interval ' 1 minutes'
select * from testdb where timestamp_start >= current_timestamp - interval ' 1 hours'
select * from testdb where timestamp_start >= current_timestamp - interval ' 1 day'
select * from testdb where timestamp_start >= current_timestamp - interval ' 7 day'
select * from testdb where timestamp_start >= current_timestamp - interval ' 1 month'
select * from testdb where timestamp_start >= current_timestamp - interval ' 1 year'

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第21张图片

从时间戳中提取 年月日时分秒、周-基于date_part()

select date_part('year', timestamp '2001-02-16 20:38:40')
select date_part('month', timestamp '2001-02-16 20:38:40')
select date_part('day', timestamp '2001-02-16 20:38:40')
select date_part('hour', timestamp '2001-02-16 20:38:40')
select date_part('minute', timestamp '2001-02-16 20:38:40')
select date_part('second', timestamp '2001-02-16 20:38:40')
select date_part('week', timestamp '2001-02-16 20:38:40')

 PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第22张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第23张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第24张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第25张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第26张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第27张图片

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第28张图片

 注意:假设当前(now)时间戳是2022-02-28,从时间戳中获取年份可有如下方式:

select date_part('year', current_timestamp)
select date_part('year', now())
select date_part('year', timestamp '2022-02-28')
select date_part('year','2022-02-28'::timestamp)
select date_part('year', 数据表中的时间戳字段名)

注意:可提取year、month、day、hour、minute、second 

PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第29张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第30张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第31张图片PostgreSQL中获取本周、本月和本年等等日期函数-年月日time_第32张图片

注意:提取时间戳中的各个年月日时分秒有以下两种方式:

  1. select date_part('hour', 数据表中的时间戳字段名)    提取的小时如:1,2,3,,23,24
  2. select to_char(数据表中的时间戳字段名,'hh24');      提取的小时如:01,02,03,,23,24

获取两个时间相差的分钟数

SELECT CURRENT_TIMESTAMP,EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP- TIMESTAMP '2023-02-06 15:15:00')) /60 as interval_minutes; 

 

你可能感兴趣的:(其他)