小白教程
所有教程
关于
Search
172.70.178.82
172.70.178.82
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“PostgreSQL 时间/日期函数和操作符”的源代码
本页内容
上一节:
PostgreSQL_PRIVILEGES(权限)
下一节:
PostgreSQL_常用函数
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:PostgreSQL 时间/日期}}[[Category:PostgreSQL 教程|43]] = PostgreSQL 时间/日期函数和操作符 = === 日期/时间操作符 === 下表演示了基本算术操作符的行为(+,*, 等): {| class="table table-striped table-hover" ! 操作符 ! 例子 ! 结果 |- | + | date '2001-09-28' + integer '7' | date '2001-10-05' |- | + | date '2001-09-28' + interval '1 hour' | timestamp '2001-09-28 01:00:00' |- | + | date '2001-09-28' + time '03:00' | timestamp '2001-09-28 03:00:00' |- | + | interval '1 day' + interval '1 hour' | interval '1 day 01:00:00' |- | + | timestamp '2001-09-28 01:00' + interval '23 hours' | timestamp '2001-09-29 00:00:00' |- | + | time '01:00' + interval '3 hours' | time '04:00:00' |- | - | - interval '23 hours' | interval '-23:00:00' |- | - | date '2001-10-01' - date '2001-09-28' | integer '3' (days) |- | - | date '2001-10-01' - integer '7' | date '2001-09-24' |- | - | date '2001-09-28' - interval '1 hour' | timestamp '2001-09-27 23:00:00' |- | - | time '05:00' - time '03:00' | interval '02:00:00' |- | - | time '05:00' - interval '2 hours' | time '03:00:00' |- | - | timestamp '2001-09-28 23:00' - interval '23 hours' | timestamp '2001-09-28 00:00:00' |- | - | interval '1 day' - interval '1 hour' | interval '1 day -01:00:00' |- | - | timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' | interval '1 day 15:00:00' |- | * | 900 * interval '1 second' | interval '00:15:00' |- | * | 21 * interval '1 day' | interval '21 days' |- | * | double precision '3.5' * interval '1 hour' | interval '03:30:00' |- | / | interval '1 hour' / double precision '1.5' | interval '00:40:00' |} === 日期/时间函数 === {| class="table table-striped table-hover" ! 函数 ! 返回类型 ! 描述 ! 例子 ! 结果 |- | <code>age(timestamp, timestamp)</code> | interval | 减去参数后的"符号化"结果,使用年和月,不只是使用天 | age(timestamp '2001-04-10', timestamp '1957-06-13') | 43 years 9 mons 27 days |- | <code>age(timestamp)</code> | interval | 从<code>current_date</code>减去参数后的结果(在午夜) | age(timestamp '1957-06-13') | 43 years 8 mons 3 days |- | <code>clock_timestamp()</code> | timestamp with time zone | 实时时钟的当前时间戳(在语句执行时变化) | | |- | <code>current_date</code> | date | 当前的日期; | | |- | <code>current_time</code> | time with time zone | 当日时间; | | |- | <code>current_timestamp</code> | timestamp with time zone | 当前事务开始时的时间戳; | | |- | <code>date_part(text, timestamp)</code> | double precision | 获取子域(等效于<code>extract</code>); | date_part('hour', timestamp '2001-02-16 20:38:40') | 20 |- | <code>date_part(text, interval)</code> | double precision | 获取子域(等效于<code>extract</code>); | date_part('month', interval '2 years 3 months') | 3 |- | <code>date_trunc(text, timestamp)</code> | timestamp | 截断成指定的精度; | date_trunc('hour', timestamp '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |- | <code>date_trunc(text, interval)</code> | interval | 截取指定的精度, | date_trunc('hour', interval '2 days 3 hours 40 minutes') | 2 days 03:00:00 |- | <code>extract</code>(field from timestamp) | double precision | 获取子域; | extract(hour from timestamp '2001-02-16 20:38:40') | 20 |- | <code>extract</code>(field from interval) | double precision | 获取子域; | extract(month from interval '2 years 3 months') | 3 |- | <code>isfinite(date)</code> | boolean | 测试是否为有穷日期(不是 +/-无穷) | isfinite(date '2001-02-16') | true |- | <code>isfinite(timestamp)</code> | boolean | 测试是否为有穷时间戳(不是 +/-无穷) | isfinite(timestamp '2001-02-16 21:28:30') | true |- | <code>isfinite(interval)</code> | boolean | 测试是否为有穷时间间隔 | isfinite(interval '4 hours') | true |- | <code>justify_days(interval)</code> | interval | 按照每月 30 天调整时间间隔 | justify_days(interval '35 days') | 1 mon 5 days |- | <code>justify_hours(interval)</code> | interval | 按照每天 24 小时调整时间间隔 | justify_hours(interval '27 hours') | 1 day 03:00:00 |- | <code>justify_interval(interval)</code> | interval | 使用<code>justify_days</code>和<code>justify_hours</code>调整时间间隔的同时进行正负号调整 | justify_interval(interval '1 mon -1 hour') | 29 days 23:00:00 |- | <code>localtime</code> | time | 当日时间; | | |- | <code>localtimestamp</code> | timestamp | 当前事务开始时的时间戳; | | |- | <code> make_date(year int, month int, day int) </code> | date | 为年、月和日字段创建日期 | make_date(2013, 7, 15) | 2013-07-15 |- | <code> 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) </code> | interval | 从年、月、周、天、小时、分钟和秒字段中创建间隔 | make_interval(days := 10) | 10 days |- | <code> make_time(hour int, min int, sec double precision) </code> | time | 从小时、分钟和秒字段中创建时间 | make_time(8, 15, 23.5) | 08:15:23.5 |- | <code> make_timestamp(year int, month int, day int, hour int, min int, sec double precision) </code> | timestamp | 从年、月、日、小时、分钟和秒字段中创建时间戳 | make_timestamp(2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08:15:23.5 |- | <code> make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ]) </code> | timestamp with time zone | 从年、月、日、小时、分钟和秒字段中创建带有时区的时间戳。 没有指定timezone时,使用当前的时区。 | make_timestamptz(2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08:15:23.5+01 |- | <code>now()</code> | timestamp with time zone | 当前事务开始时的时间戳; | | |- | <code>statement_timestamp()</code> | timestamp with time zone | 实时时钟的当前时间戳; | | |- | <code>timeofday()</code> | text | 与<code>clock_timestamp</code>相同,但结果是一个text 字符串; | | |- | <code>transaction_timestamp()</code> | timestamp with time zone | 当前事务开始时的时间戳; | | |}
返回至“
PostgreSQL 时间/日期函数和操作符
”。
上一节:
PostgreSQL_PRIVILEGES(权限)
下一节:
PostgreSQL_常用函数