PostgreSQL 日期

17 Mar 2025 | 6 分钟阅读

在本节中,我们将了解 PostgreSQL 日期数据类型的工作原理、日期数据类型的示例以及一些可用的日期函数,这些函数有助于我们更有效地处理日期值

什么是 PostgreSQL 日期数据类型?

PostgreSQL 中的另一种数据类型是 DATE,它用于存储日期值

PostgreSQL 中,日期数据类型的格式是 YYYY-MM-DD,这有助于我们存储并将日期记录插入到日期列中

日期数据类型占用 4 字节的存储大小。日期数据类型的最小和最大范围从 公元前 4713 年到公元 5874897 年,或者 1000-01-01 到 9999-12-31

如果我们想在创建包含日期列的新表时使用当前日期作为列的默认值,我们可以在 DEFAULT 关键字之后使用 CURRENT_DATE

PostgreSQL 日期数据类型语法

PostgreSQL 日期数据类型语法如下

PostgreSQL 日期数据类型示例

让我们看一个示例来理解 PostgreSQL 日期数据类型的工作原理。

我们正在使用 CREATE 命令创建一个新表 Records,并使用 INSERT 命令插入一些值。

要在 Organization 数据库中创建 Records,我们使用 CREATE 命令。

Records 表包含各种列,例如 Records_id、Heading 和 Submission_date,对于 Submission_date 列,我们使用 DATE 数据类型,并且也接受当前日期作为默认值

输出

执行上述命令后,我们将收到以下消息,显示 Records 表已成功创建。

PostgreSQL Date

Records 表成功创建后,我们将借助 INSERT 命令向其中插入一些值。

输出

执行上述命令后,我们将收到以下消息窗口,显示指定值已成功插入到 Records 表中。

PostgreSQL Date

创建并插入 Records 表的值后,我们将使用 SELECT 命令返回 Records 表的所有行。

输出

成功执行上述命令后,我们将得到以下输出,显示 Records 表中存在的所有数据。

PostgreSQL Date

注意:根据数据库服务器的当前日期,我们可能会得到不同的 Submission_date 值。

PostgreSQL 日期函数示例

PostgreSQL 中有以下日期函数,例如 NOW()、AGE()、EXTRACT()、TO_CHAR() 等,这有助于我们在使用日期数据类型时提高性能。

让我们看不同的示例来理解 PostgreSQL 日期函数的工作原理。

首先,我们正在使用 CREATE 命令创建一个新表 Student_details,并使用 INSERT 命令插入一些值。

我们将使用 CREATE 命令在 Organization 数据库中创建 Student_details

Student_details 表包含以下列:Student_Id、Stu_first_name、Stu_last_name、Date_of_birth 和 Admission_date 列,其中 Date_of_birth 和 Admision_date 包含 DATE 数据类型。

输出

执行上述命令后,我们将收到以下消息,显示 Student_details 表已成功创建到 Organization 数据库中。

PostgreSQL Date

一旦 Student_details 表生成,我们将使用 INSERT 命令向其中插入一些值。

输出

执行上述命令后,我们将收到以下消息窗口,显示值已成功插入到 Student_details 表中。

PostgreSQL Date

完成 Student_details 表的创建和插入后,我们将看到以下日期数据类型函数:

评估年龄(年、月、日)

我们可以使用 AGE() 函数来分析当前日期的年龄,以年、月和日表示。

例如:在以下命令中,我们使用 AGE() 函数来计算 Student_details 表中学生的年龄。

输出

执行上述命令后,我们将得到以下输出,显示所有学生的年龄,并带有 AGE() 函数。

PostgreSQL Date

假设我们将一个日期值传递给 AGE() 函数,它将从现有日期中减去该日期值。如果我们将两个参数传递给 AGE() 函数,它将从初始参数中减去第二个参数。

让我们看一个示例来详细了解。

在下面的示例中,我们将尝试检索学生在 2010-10-08 的年龄,如以下命令所示。

输出

成功执行上述命令后,我们将得到以下输出,显示所有学生在指定日期值的年龄

PostgreSQL Date

从日期值中提取年、季度、月、周、日

我们可以使用 EXTRACT() 函数从日期值中检索年、季度、月、周、日。

例如:在以下命令中,我们将从学生的出生日期中提取年、月和日。

输出

执行上述命令后,我们将得到以下结果,分别显示年、月和日的值。

PostgreSQL Date

获取当前日期

我们可以使用内置的 NOW() 函数来检索当前日期和时间。如果我们使用双冒号 (::) 将 DATETIME 值转换为 DATE 值,我们可以只检索日期列记录而不包含时间部分。

要返回数据库服务器的当前日期,我们可以使用以下命令。

输出

执行上述命令后,我们将在输出中通过 NOW() 函数获取当前日期,如下所示。

PostgreSQL Date

获取当前日期还有另一种方法是使用 CURRENT_DATE,如下所示。

输出

执行上述语句后,我们将得到以下输出,显示基于数据库服务器的当前日期

PostgreSQL Date

注意:输出格式为:YYYY-MM-DD。但是,我们可以以各种格式获取日期值的结果。

获取两个日期之间的时间间隔

我们可以使用减号 (-) 运算符来检索两个日期之间的时间间隔。

让我们看一个示例以便更好地理解

以下命令用于通过从当前或今天的日期中减去 Admission_date 列中的值来获取学生的总天数:

输出

执行上述命令后,我们将获得以下输出

PostgreSQL Date

以特定格式获取 PostgreSQL 日期值的输出

我们可以使用 TO_CHAR() 函数以特定格式获取日期值的输出。 TO_CHAR() 函数需要两个参数。

第一个参数是我们要格式化的值另一个参数是指定输出格式的模板

在下面的示例中,我们将使用以下命令以 YYYY/MM/DD 格式显示当前日期。

输出

成功执行上述命令后,我们将得到与上述语句中提及的日期格式相似的日期格式。

PostgreSQL Date

或者,如果我们要以 2020 年 9 月 29 日的格式查看日期,我们可以使用以下命令:

输出

执行上述命令后,我们将得到以下结果,显示与上述语句中提供的格式相同的格式。

概述

PostgreSQL 日期数据类型部分,我们学习了以下主题。

  • PostgreSQL 日期数据类型用于存储指定列的日期值。
  • 我们使用了不同的 DATE 函数,例如 NOW()、AGE()、EXTRACT() 和 TO_CHAR(),来增强和处理特定表中的 DATE 值。
  • 我们使用 CURRENT_DATE 关键字来检索表中特定列的当前日期。

下一主题PostgreSQL 时间