网站建设后台和前端,360建筑网简历电话怎么修改,开发一个网站大概多少钱,动漫制作专业软件postgresql-日期函数 日期时间函数计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间CURRENT_DATE当前事务开始时间 时区转换 日期时间函数
PostgreSQL 提供了以下日期和时间运算的算术运算符。
计算时间间隔
age(timestamp, timestamp)函数用于计算两… postgresql-日期函数 日期时间函数计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间CURRENT_DATE当前事务开始时间 时区转换 日期时间函数
PostgreSQL 提供了以下日期和时间运算的算术运算符。
计算时间间隔
age(timestamp, timestamp)函数用于计算两个时间点之间的间隔age(timestamp)函数用于 计算当前日期的凌晨 12 点到该时间点之间的间隔
select age(timestamp 2020-12-31, timestamp 2020-01-01), age(timestamp
2020-01-01);获取时间中的信息
date_part(text, timestamp)和 extract(field FROM timestamp)函数用于获取日期时间中的某 一部分例如年份、月份、小时等date_part(text, interval)和 extract(field FROM interval)函数用于获取时间间隔中的某一部分
select date_part(year, timestamp 2020-03-03 20:38:40), extract(year from
timestamp 2020-03-03 20:38:40),date_part(month, interval 1 years 5 months), extract(month from
interval 1 years 5 months);通过返回字段的标题可以看出extract 函数实际上也是调用了 date_part 函数只是参数方 式不同。这两个函数支持获取的信息包括 • century世纪 • day对于 timestamp返回月份中的第几天对于 interval返回天数 • decade年份除以 10 • dow星期天0到星期六6 • doy一年中的第几天1 - 365/366 • epoch对于 timestamp WITH time zone返回 1970-01-01 00:00:00 UTC 到该时间的秒数 对于 date 和 timestamp返回本地时间的 1970-01-01 00:00:00 到该时间的秒数对于 interval返回以秒数表示的该时间间隔 • hour小时1 - 23 • isodowISO 8601 标准中的星期一1到星期天7 • isoyearISO 8601 标准定义的日期所在的年份。每年从包含 1 月 4 日的星期一开始2017 年 01 月 01 日属于 2016 年 • microseconds微秒包含秒和小数秒在内的数字乘以 1000000 • millennium千年 • milliseconds毫秒包含秒和小数秒在内的数字乘以 1000 • minute分钟0 - 59 • month月份 • quarter季度1 - 4 • second秒数包含小数秒 • timezoneUTC 时区单位为秒 • timezone_hourUTC 时区中的小时部分 • timezone_minuteUTC 时区中的分钟部分 • weekISO 8601 标准中的星期几每年从第一个星期四所在的一周开始 • year年份。
截断日期/时间
date_trunc(field, source [, time_zone ])函数用于将 timestamp、timestamp WITH time zone、 date、time 或者 interval 数据截断到指定的精度
select date_trunc(year, timestamp 2020-03-03 20:38:40),date_trunc(day, timestamptz 2020-03-03 20:38:4000,
Asia/Shanghai),date_trunc(hour, interval 2 days 3 hours 40 minutes);date_trunc 函数支持以下截断精度
microsecondsmillisecondssecondminutehourdayweekmonthquarteryeardecadecenturymillennium
创建日期/时间
make_date(year int, month int, day int)函数用于创建一个日期
select make_date(2020, 03, 15);make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)函数通过指定年、月、日等信息创建一个时间间隔
select make_interval(days 1, hours 5);make_time(hour int, min int, sec double precision)函数通过指定小时、分钟和秒数创建一个 时间。 make_timestamp(year int, month int, day int, hour int, min int, sec double precision) 函数通过指定年、月、日、时、分、秒创建一个时间戳。 make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])函数通过指定年、月、日、时、分、秒创建一个带时区的时间戳。如果没有指 定时区使用当前时区。
select make_timestamptz(2020, 3, 15, 8, 20, 23.5);to_timestamp(double precision)函数将 Unix 时间戳自从 1970-01-01 00:00:0000 以来的秒 数转换为 PostgreSQL 时间戳数据。
select to_timestamp(1583152349);获取系统时间
PostgreSQL 提供了大量用于获取系统当前日期和时间的函数例如 current_date、current_time、 current_timestamp、clock_timestamp()、localtimestamp、now()、statement_timestamp()等同时还 支持延迟语句执行的 pg_sleep()等函数 参考文档
CURRENT_DATE
CURRENT_DATE 函数用于获取数据库服务器的当前日期
select current_date;调用该函数时不需要在函数名后加括号。该日期是服务器的日期不是客户端的日期。
当前事务开始时间
以下函数可以用于获取数据库服务器的当前时间
CURRENT_TIME
CURRENT_TIME(precision)
LOCALTIME
LOCALTIME(precision)CURRENT_TIMESTAMP
CURRENT_TIMESTAMP(precision)
LOCALTIMESTAMP
LOCALTIMESTAMP(precision)
时区转换
AT TIME ZONE 运算符用于将 timestamp without time zone、timestamp WITH time zone 以及 time WITH time zone 转换为指定时区中的时间
SELECT timestamp 2020-03-03 20:38:40 at time zone Asia/Shanghai,timestamp with time zone 2020-03-03 20:38:40-05:00 at time zone
Asia/Shanghai,time with time zone 20:38:40-05:00 at time zone Asia/Shanghai;timezone(zone, timestamp)函数等价于 SQL 标准中的 timestamp AT TIME ZONE zone。
还有一些关于日期时间的函数可以参考官方文档