目录
- 1.获取当前时间
- 2.获取当前月份的第一天
- 3.根据当前日期获取次日、次月、前年
- 4.根据第三步的内容,我们还可以获取上一月/年的最后一天
- 5.根据第四步的思路,我们可以获取当月最后一天的日期
- 6.虽然前几步最后都转成了日期格式,但也可以截取任意日期的时分秒
- 总结
最近写代码遇到关于获取某一时间年月日的需求,特此写一篇文章便于自己记录
1.获取当前时间
select now();
–返回:2022-12-07 15:53:15.881711+08
select current_date;
–返回:2022-12-07
select current_timestamp;
–返回:2022-12-07 15:56:28.729581+08
select current_time;
–返回:15:56:50.155444+08
2.获取当前月份的第一天
select date_trunc(\’month\’,current_date)::DATE;
–返回:2022-12-01
3.根据当前日期获取次日、次月、前年
select (current_date + INTERVAL \’1 day\’)::DATE;
–根据当前日期获取次日,返回:2022-12-08
select date_trunc(\’month\’,(current_date + INTERVAL \’1 month\’))::DATE;
–根据当前日期获取次月,返回:2023-01-01
select (current_date – INTERVAL \’2 YEAR\’)::DATE;
–根据当前日期获取前年,返回:2020-12-07
如果要获取“周”的周期的时间 把day、month或year改成week即可,2 year那里加不加s都可以执行。
4.根据第三步的内容,我们还可以获取上一月/年的最后一天
select (date_trunc(\’month\’,current_date) – interval\’1 day\’)::DATE;
–首先用date_trunc函数获取当月的第一天的日期,然后再倒退一天,返回:2022-11-30
select (date_trunc(\’year\’,current_date) – interval\’1 day\’)::DATE;
–同上,首先用date_trunc函数获取今年的第一天的日期,然后再倒退一天,返回:2021-12-31
这里注意如果我们要获取上一年前一个月的第一天日期或最后一天日期,即我现在的时间是2022-12-07,我想获取2021年11月第一天的日期或最后一天,写法应该是
select (date_trunc(\’year\’,current_date) – interval\’2 month\’)::DATE;
–从当前日期2022-12-07获取2021年11月第一天的日期,返回:2021-11-01
select ((date_trunc(\’year\’,current_date) – interval\’1 month\’)-INTERVAL \’1 day\’)::DATE;
–从当前日期2022-12-07获取2021年11月最后一天的日期,返回:2021-11-30
–不知道有没有更简易的方法,希望学习下
5.根据第四步的思路,我们可以获取当月最后一天的日期
select (date_trunc(\’month\’,current_date) + interval\’1 month – 1 day\’)::DATE;
–首先用date_trunc函数获取当月的第一天的日期,接着再加一个月,最后再减一天,返回:2022-12-31
6.虽然前几步最后都转成了日期格式,但也可以截取任意日期的时分秒
SELECT substr(to_char(CURRENT_TIMESTAMP, \’yyyy-mm-dd hh24:mi:ss\’),12,8);
–返回:16:19:34
总结
到此这篇关于使用postgresql获取当前或某一时间段的年月日的文章就介绍到这了,更多相关postgresql获取年月日内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!