PostgreSQL日期和时间操作大全

1. 官网帮忙文档

        日期时间函数网址

1.2 函数使用方法

PatternDescriptionRemark
HHhour of day (01–12)
HH12hour of day (01–12)
HH24hour of day (00–23)
MIminute (00–59)
SSsecond (00–59)
MSmillisecond (000–999)
USmicrosecond (000000–999999)
FF1tenth of second (0–9)
FF2hundredth of second (00–99)
FF3millisecond (000–999)
FF4tenth of a millisecond (0000–9999)
FF5hundredth of a millisecond (00000–99999)
FF6microsecond (000000–999999)
SSSSSSSSSseconds past midnight (0–86399)
AMamPM or pmmeridiem indicator (without periods)
A.M.a.m.P.M. or p.m.meridiem indicator (with periods)
Y,YYYyear (4 or more digits) with comma
YYYYyear (4 or more digits)
YYYlast 3 digits of year
YYlast 2 digits of year
Ylast digit of year
IYYYISO 8601 week-numbering year (4 or more digits)
IYYlast 3 digits of ISO 8601 week-numbering year
IYlast 2 digits of ISO 8601 week-numbering year
Ilast digit of ISO 8601 week-numbering year
BCbcAD or adera indicator (without periods)
B.C.b.c.A.D. or a.d.era indicator (with periods)
MONTHfull upper case month name (blank-padded to 9 chars)
Monthfull capitalized month name (blank-padded to 9 chars)
monthfull lower case month name (blank-padded to 9 chars)
MONabbreviated upper case month name (3 chars in English, localized lengths vary)
Monabbreviated capitalized month name (3 chars in English, localized lengths vary)
monabbreviated lower case month name (3 chars in English, localized lengths vary)
MMmonth number (01–12)
DAYfull upper case day name (blank-padded to 9 chars)
Dayfull capitalized day name (blank-padded to 9 chars)
dayfull lower case day name (blank-padded to 9 chars)
DYabbreviated upper case day name (3 chars in English, localized lengths vary)星期几的英文,前3个字母,3个字母都大写
Dyabbreviated capitalized day name (3 chars in English, localized lengths vary)星期几的英文,前3个字母,首字线大写,后2个字母小写
dyabbreviated lower case day name (3 chars in English, localized lengths vary)星期几的英文,前3个字母,3个字母都为小写
DDDday of year (001–366)
IDDDday of ISO 8601 week-numbering year (001–371; day 1 of the year is Monday of the first ISO week)
DDday of month (01–31)
Dday of the week, Sunday (1) to Saturday (7)
IDISO 8601 day of the week, Monday (1) to Sunday (7)
Wweek of month (1–5) (the first week starts on the first day of the month)月里的周别,1号为周别开始的日期,7天为一个周别,来计算,例如:2023年1月份的第1周的日期为(1月1号至1月7号)第2周的日期为(1月8号至1月14号)
WWweek number of year (1–53) (the first week starts on the first day of the year)年里的周别:1月1号开始计算,7天为周别,依次来计算,例如2022年第1周为(1月1号至1月7号),第2周为(1月8号至1月5号)
IWweek number of ISO 8601 week-numbering year (01–53; the first Thursday of the year is in week 1)ISO 8601周编号年份的周编号(01–53;一年的第一个星期四在第1周):看一年里第一个星期四落在的周,为本年的第一周
CCcentury (2 digits) (the twenty-first century starts on 2001-01-01)
JJulian Date (integer days since November 24, 4714 BC at local midnight; see Section B.7)
Qquarter
RMmonth in upper case Roman numerals (I–XII; I=January)
rmmonth in lower case Roman numerals (i–xii; i=January)
TZupper case time-zone abbreviation (only supported in to_char)
tzlower case time-zone abbreviation (only supported in to_char)
TZHtime-zone hours
TZMtime-zone minutes
OFtime-zone offset from UTC (only supported in to_char)


2.操作实例 

select now(); --当前时间 2021-04-21 11:36:56

SELECT EXTRACT (year FROM now()); --年 2021
SELECT EXTRACT (quarter FROM now()); --季 02
SELECT EXTRACT (month FROM now()); --月 04
SELECT EXTRACT (day FROM now()); --月中天 21
SELECT EXTRACT (week FROM now()); --周 16
SELECT EXTRACT (isodow FROM now()); --周中天 3
SELECT EXTRACT (hour FROM now()); --時 11
SELECT EXTRACT (minute FROM now()); --分 36
SELECT EXTRACT (second FROM now()); --秒 56.909161

2.1 周别和星期操作大全

2.1.1 求周别的函数

select  to_char(to_date('2023-01-02','YYYY-MM-DD'),'W');
select  to_char(to_date('2023-01-02','YYYY-MM-DD'),'WW');
select  to_char(to_date('2023-01-02','YYYY-MM-DD'),'IW');

3. 计算小时数实例[包括小时数的加减运算]

        将数字型转化成interval,进行运算,得到日期时间型,例如 SELECT now()::timestamp + (qty || ' day')::interval FROM table --把col字段转换成天 然后相加

--当前日期0点,返回值为时间截
select date_trunc('day', now())
--当时时间的小时数,整点,返回值为时间截
select  date_trunc('hour', now())
--当时日期8点整,返回值为时间截
select date_trunc('day', now()) + interval '8 h' 
--当前时间,时分秒
select current_time;
--关于日期计算,转化成 interval 
SELECT now()::timestamp + '1 year';  --当前时间加1年
SELECT now()::timestamp + '1 month';  --当前时间加一个月
SELECT now()::timestamp + '1 day';  --当前时间加一天
SELECT now()::timestamp + '1 hour';  --当前时间加一个小时
SELECT now()::timestamp + '1 min';  --当前时间加一分钟
SELECT now()::timestamp + '1 sec';  --加一秒钟
select now()::timestamp + '1 year 1 month 1 day 1 hour 1 min 1 sec';  --加1年1月1天1时1分1秒
SELECT now()::timestamp + (qty || ' day')::interval FROM table --把col字段转换成天 然后相加

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值