📜  PostgreSQL-日期时间函数和运算符(1)

📅  最后修改于: 2023-12-03 14:45:36.053000             🧑  作者: Mango

PostgreSQL-日期时间函数和运算符

PostgreSQL是一种强大的开源关系数据库管理系统。它支持各种数据类型,其中包括日期和时间类型。本文将介绍PostgreSQL中可用的日期时间函数和运算符。

日期时间类型

在PostgreSQL中,有三种日期时间类型:

  • date:日期类型,表示年、月、日。
  • timestamp:日期时间类型,表示年、月、日、小时、分钟和秒。
  • timestamptz:带有时区的日期时间类型。它与timestamp类型相同,但在存储和显示时考虑时区。
日期时间函数

PostgreSQL提供了许多与日期时间相关的函数,这些函数可用于计算和操作日期时间值。

NOW()

NOW()函数返回当前日期和时间,以timestamp类型表示。

SELECT NOW();
-- 结果:2021-09-29 15:28:00.120658
DATE_TRUNC()

DATE_TRUNC()函数截取日期时间(即从两个时间戳之间截取时间段)。

SELECT DATE_TRUNC('day', NOW());
-- 结果:2021-09-29 00:00:00
DATE_PART()

DATE_PART()函数返回日期时间的一个部分,例如年、月、日、小时、分钟等。

SELECT DATE_PART('year', NOW());
-- 结果:2021

SELECT DATE_PART('month', NOW());
-- 结果:9
AGE()

AGE()函数计算两个日期之间的差异。

SELECT AGE('2021-09-01'::DATE, NOW());
-- 结果:"27 days 15:28:00.155156"
DATE_ADD()

DATE_ADD()函数从给定日期开始添加时间间隔。

SELECT '2021-09-01'::DATE + INTERVAL '1 month';
-- 结果:2021-10-01
日期时间运算符

PostgreSQL还支持各种日期时间运算符。

“+”和“-”

使用“+”和“-”运算符添加或减去日期时间间隔。

SELECT NOW() + INTERVAL '1 hour';
-- 结果:2021-09-29 16:28:00.120658

SELECT NOW() - INTERVAL '2 days';
-- 结果:2021-09-27 15:28:00.120658
“<”和“>”

使用“<”和“>”运算符比较两个日期时间值。

SELECT '2021-09-01'::DATE < NOW();
-- 结果:true

SELECT NOW() > '2022-01-01'::DATE;
-- 结果:false
“==”和“!=”

使用“==”和“!=”运算符比较两个日期时间值。

SELECT '2021-09-01'::DATE = NOW()::DATE;
-- 结果:false

SELECT NOW()::DATE != '2022-01-01'::DATE;
-- 结果:true
结论

PostgreSQL提供了许多日期时间函数和运算符,这些函数和运算符可用于计算和操作日期和时间值。在使用日期时间类型时,请牢记应用程序的时区,以确保数据的正确性。