📜  PostgreSQL时间(1)

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

PostgreSQL时间

PostgreSQL是一种开源关系型数据库管理系统,支持众多的数据类型,其中包括日期和时间类型。在本文中,我们将探讨PostgreSQL中的日期和时间类型以及与之相关的函数和运算符。

日期类型

PostgreSQL支持三种日期类型:DATE、TIMESTAMP和INTERVAL。

DATE类型

DATE类型用于存储日期。其值的范围是从公元前4713年1月1日到公元后5874897年6月30日。DATE值以ISO 8601标准格式YYYY-MM-DD表示。例如,以下是创建DATE类型列的示例:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  registration_date DATE NOT NULL
);
TIMESTAMP类型

TIMESTAMP类型用于存储日期和时间。其值的范围是从公元前4713年1月1日到公元后294276年12月31日。TIMESTAMP值以ISO 8601标准格式YYYY-MM-DD HH:MI:SS表示。以下是创建TIMESTAMP类型列的示例:

CREATE TABLE events (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  start_time TIMESTAMP NOT NULL,
  end_time TIMESTAMP NOT NULL
);
INTERVAL类型

INTERVAL类型用于表示时间间隔。其值可以是秒、分钟、小时、天、周、月、季度或年。以下是使用INTERVAL类型创建列的示例:

CREATE TABLE rentals (
  id SERIAL PRIMARY KEY,
  start_time TIMESTAMP NOT NULL,
  end_time TIMESTAMP NOT NULL,
  rental_duration INTERVAL
);
日期和时间函数

PostgreSQL提供了众多的日期和时间函数,可以用于处理日期和时间类型的值。以下是其中一些常用的函数:

NOW()

现在函数(NOW())返回当前日期和时间的TIMESTAMP值。以下是使用NOW()函数将当前时间插入到表中的示例:

INSERT INTO users (name, registration_date)
VALUES ('John Doe', NOW());
EXTRACT()

抽取函数(EXTRACT())用于从日期和时间类型的值中抽取特定的部分,例如月份、年份、小时等。以下是使用EXTRACT()函数获取当前月份的示例:

SELECT EXTRACT(MONTH FROM NOW());
DATE_TRUNC()

截取函数(DATE_TRUNC())用于将日期和时间类型的值截取到指定的精度级别,例如年、季度、月、周等。以下是使用DATE_TRUNC()函数将日期截取到周的起始点的示例:

SELECT DATE_TRUNC('week', NOW());
日期和时间运算符

PostgreSQL还提供了一些日期和时间运算符,可以用于将日期和时间类型的值相互比较、相加或相减。以下是其中一些常用的运算符:

+

加号运算符(+)用于将INTERVAL值加到日期或时间类型的值上。以下是使用+运算符将一段时间加到日期上的示例:

SELECT '2021-01-01'::DATE + INTERVAL '1 month';
-

减号运算符(-)用于从日期和时间类型的值中减去INTERVAL值。以下是使用-运算符从一个日期减去一段时间的示例:

SELECT '2022-12-31'::DATE - INTERVAL '1 year';
结论

PostgreSQL提供了强大的日期和时间类型以及众多的函数和运算符,可以帮助程序员在其应用程序中有效地处理日期和时间相关的数据。以上是其中的一些常用示例,希望可以帮助您更好地理解和应用PostgreSQL中的日期和时间类型。