PG日期类型系列一

目录

常用日期类型转化格式化模式字符串规则

日期类型转字符串

timestamp日期类型转date和time

current_timestamp、localtimestamp、localtime类型转化要求


格式描述
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年的后两位
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 to_char(NOW(),'yy-mm-dd') as time

select to_char(NOW(),'YYYY-MM-DD') as time

select to_char(NOW(),'YYYY-MM-DD HH:MI:SS') as time

select to_char(NOW(),'YYYY-MM-DD HH24:MI:SS') as time

注:模式格式不区分大小写

日期类型转字符串

---获取年

select to_char(NOW(),'yyyy') as year;

---获取月

select to_char(NOW(),'mm') as month;

---获取日

select to_char(NOW(),'dd') as day;

---获取时

select to_char(NOW(),'hh24') as hour;

---获取分

select to_char(NOW(),'mi') as minute;

---获取秒

select to_char(NOW(),'ss') as second;

---获取年-月-日 时:分:秒

select to_char(NOW(),'yyyy-mm-dd hh:mi:ss') as ymd;

timestamp日期类型转date和time

SELECT now()::timestamp; SELECT now()::time; SELECT now()::date;

注:timestamp和time类型默认是去掉时区的如果要加上时区则

SELECT now()::timestamp with time zone; SELECT now()::time with time zone;

SELECT now()::time(0); SELECT now()::timestamp(0) with time zone;

注:timestamp和time类型中精度范围是1~6,就是小数点后面保留几位,0表示去掉小数点

1表示保留小数点后一位

SELECT now()::time(1); SELECT now()::timestamp(1);

current_timestamp、localtimestamp、localtime类型转化要求

 select current_timestamp::timestamp(0);
    
select localtimestamp::timestamp(0);
select localtimestamp::time(0);
select localtimestamp::date;

select localtime::time;
注:因为timestamp类型含有年月日时分秒,因此current_timestamp、localtimestamp可以转化成timestamp、date及time
而localtime类型只含有时分秒及精度值只能转成time不能转timestamp、date

总结:

 1.postgresql中日期类型后双冒号(::)表示类型转化的意思

  ::date表示转化为date类型日期

  ::time表示转化为time类型日期

   ::timestamp表示转化为timestamp类型日期

2.::timestamp(0)表示时间去掉小数点

   ::timestamp(1)表示时间保留小数点一位

   ::time(0)表示时间去掉小数点

   ::time(1)表示时间保留小数点一位

   ::timestamp(p)和time(p)中p的范围是1~6

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值