PostgreSql中时间格式转换和时间加减

832 阅读2分钟
  • 当前系统的完整时间:

select now(); --等同于 select current_timestamp;

结果显示为2022-02-22 09:50:13

  • 时间转特定形式的字符

使用to_char函数可以将时间格式转换为字符格式,并可以执行转换的格式

select to_char(now(), 'yyyyMMddHH24miss') --结果20220222095610

  • 字符格式转时间 select to_timestamp('20220221143723','yyyyMMddHH24miss') 模式 描述 HH 一天的小时数(01-12) HH12 一天的小时数(01-12) HH24 一天的小时数(00-23) MI 分钟(00-59) SS 秒(00-59) MS 毫秒(000-999) US 微秒(000000-999999) AM 正午标识(大写) Y,YYY 带逗号的年(4和更多位) YYYY 年(4和更多位) YYY 年的后三位 YY 年的后两位 Y 年的最后一位 MONTH 全长大写月份名(空白填充为9字符) Month 全长混合大小写月份名(空白填充为9字符) month 全长小写月份名(空白填充为9字符) MON 大写缩写月份名(3字符) Mon 缩写混合大小写月份名(3字符) mon 小写缩写月份名(3字符) MM 月份号(01-12) DAY 全长大写日期名(空白填充为9字符) Day 全长混合大小写日期名(空白填充为9字符) day 全长小写日期名(空白填充为9字符) DY 缩写大写日期名(3字符) Dy 缩写混合大小写日期名(3字符) dy 缩写小写日期名(3字符) DDD 一年里的日子(001-366) DD 一个月里的日子(01-31) D 一周里的日子(1-7;周日是1) W 一个月里的周数(1-5)(第一周从该月第一天开始) WW 一年里的周数(1-53)(第一周从该年的第一天开始)

  • 时间加减计算 select 时间 +/- INTERVAL '增量时间'

`select now() - INTERVAL '1 days';

select now() + INTERVAL '1 day';

select now() + INTERVAL '1 d';

select now() + INTERVAL '1 D';

select now() + INTERVAL '1 Day'; --不区分大小写和复数

select now() + '1 day'; --如果时间增加可以不写interval,但是减的时候必须写

select now() + '1 year 1 month 1 day 1 hour 1 min 1 sec'; --可以复合使用加1年1月1天1时1分1秒`

注意事项:

1.时间增加可以不写interval,但是减的时候必须写,不然报错

2.增量的时间格式可以用一下全称或者缩写都可,其中全称可以用years或者year,单复数效果一样。

AbbreviationMeaning
Yyear
Mmonth
Wweek
Dday
Hhour
Mminute/min
Ssecond