now()函数:
current_timestamp,同now():
可以去掉now()、掉后面的+8等:
select current_timestamp::timestamp(0)without time zone;
语法:DATE_PART(field, source), filed可以理解为要截取的类型。
下面是filed支持的类型:
CENTURY,世纪,获取日期所在的世纪:
select date_part(‘CENTURY’, now());
MILLENNIUM,千年
YEAR,年份域
MONTH,对于timestamp数值,它是一年里的月份数(1-12);对于interval数值,它是月的数目,然后对12取模(0-11)
DAY,日期里的天,值是1-31:
select date_part(‘day’, now());
HOUR,小时(0-23)
MINUTE,分钟域(0-59)
SECOND,秒域,包括小数部分(0-59[1])
MICROSECONDS,秒域(包括小数)乘以 1,000,000
MILLISECONDS,秒域(包括小数)乘以 1,000
DECADE,年份域除以10:
DOW,星期号(0-6;星期天是0) (仅用于timestamp)
select date_part(‘DOW’, now());
DOY,一年中的第几天(1 -365/366) (仅用于 timestamp)
QUARTER,该天所在的该年的季度(1-4)(仅用于 timestamp)
WEEK,该天在所在的年份里是第几周。
使用语法:extract (field from source),field 支持的类型,和date_part()函数一样
to_char(timestamp, text),把时间戳转换成字串
to_date(text, text) 把字串转换成日期
to_timestamp(text, text) ,把字串转换成时间戳
select date ‘2001-09-28’ + interval ‘1 hour’;
select date ‘2001-09-28′ + time ’03:00’;
select interval ‘1 day’ + interval ‘1 hour’;
select timestamp ‘2001-09-28 01:00′ + interval ’23 hours’;
select time ’01:00′ + interval ‘3 hours’;
select – interval ’23 hours’;
select date ‘2001-10-01’ – date ‘2001-09-28’;
select date ‘2001-10-01’ – integer ‘7’;
select date ‘2001-09-28’ – interval ‘1 hour’;
select time ’05:00′ – time ’03:00′;
select time ’05:00′ – interval ‘2 hours;
select timestamp ‘2001-09-28 23:00′ – interval ’23 hours’;
select interval ‘1 day’ – interval ‘1 hour’;
select timestamp ‘2001-09-29 03:00’ – timestamp ‘2001-09-27 12:00’;
select interval ‘1 hour’ * double precision ‘3.5’;
select interval ‘1 hour’ / double precision ‘1.5’;
select now() – interval ’10 min/year/month/day/hour/sec/ (1 year 1 month 1 day 1 hour 1 min 1 sec)’
select now()::timestamp(0)without time zone-interval ’72 hour’
select extract(day from now() – ‘2001-09-27 12:00’) from user ;
到此这篇关于pgsql时间处理的一些常用方式总结的文章就介绍到这了,更多相关pgsql时间处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!