PostgreSQL - Date类型

PostgreSQL - Date类型 首页 / PostgreSQL入门教程 / PostgreSQL - Date类型

在本节中,无涯教程将了解 PostgreSQL Date数据类型, Date数据类型的示例以及一些可访问的日期函数的工作原理,这些函数可以帮助无涯教程处理日期值更有效。

日期数据类型

PostgreSQL中的另一种数据类型是 DATE ,用于存储日期值日期数据类型格式 yyyy-mm-dd ,这有助于无涯教程存储和将日期记录插入日期列

日期数据类型涉及 4字节的存储大小。

如果要在创建包含以下内容的新表时使用当前日期作为列的默认值,可以在 DEFAULT 关键字后使用 CURRENT_DATE 。日期列。

日期类型语法

PostgreSQL Date数据类型的语法如下:

variable_name DATE

日期类型示例

让无涯教程看一个示例示例,以了解 PostgreSQL Date数据类型的工作方式。

在CREATE命令的帮助下,无涯教程将创建一个新表作为 Records ,并使用 INSERT命令插入一些值。

Records 表包含各个列,例如 Records_id,Heading和Submission_date  ,无涯教程使用 DATE数据类型,并接受当前日期作为默认值

CREATE TABLE Records (
Records_id serial PRIMARY KEY,
Heading VARCHAR NOT NULL,
Submission _date DATE NOT NULL DEFAULT CURRENT_DATE
);

执行上述命令后,无涯教程将收到以下消息,该消息显示 Records 表已成功创建。

PostgreSQL Date

成功创建 Records 表后,无涯教程将在 INSERT 命令的帮助下向其中插入一些值。

INSERT INTO Records (Heading)
VALUES
('Invoice to Client ABC'),
('Invoice to Client PQR'),
('Invoice to client XYZ');

实施上述命令后,无涯教程将获得以下消息窗口,该窗口显示指定的值已成功插入到 Records 表中。

PostgreSQL Date

创建并插入 Records 表的值后,无涯教程将使用 SELECT 命令返回 Records 的所有行桌子:

SELECT * 
FROM Records;

成功执行上述命令后,无涯教程将获得以下输出,其中显示 Records 表中存在的所有数据:

PostgreSQL Date


日期函数示例

无涯教程有以下 date函数,例如 NOW(),AGE(),EXTRACT(),TO_CHAR()等。这些函数可以帮助无涯教程进行以下操作:在使用 Date数据类型时提高性能。

首先,无涯教程在CREATE命令的帮助下以 Student_details 的形式创建新表,并使用INSERT命令插入一些值。

无涯教程将使用 CREATE 命令在数据库中创建 Student_details

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

CREATE TABLE Student_details (
    Student_Id serial PRIMARY KEY,
    Stu_first_name VARCHAR,
    Stu_last_name VARCHAR ,
    Date_of_birth DATE NOT NULL,
    Admission_date DATE NOT NULL
);

执行上述命令后,无涯教程将获得以下消息,该消息显示 Student_details 表已成功创建到 Organization 数据库中。

PostgreSQL Date

生成 Student_details 表后,无涯教程将使用INSERT命令在其中插入一些值。

INSERT INTO Student_details(Stu_first_name, Stu_last_name,
Date_of_birth, Admission_date)
VALUES 
('Mike','Smith','1994-10-22','2018-08-11'),
('William','Davis','1990-08-12','2018-08-10'),
('Susan','Brown','1991-02-28','2018-07-10'),
('Hannah','Beker','1995-12-13','2018-08-11'),
('Margaret','Wilson','1994-04-25','2018-07-12')
;

执行完上述命令后,无涯教程将获得以下消息窗口,该窗口显示值已成功插入到 Student_details 表中。

PostgreSQL Date

创建并插入 Student_details 表后,无涯教程将看到以下 Date数据类型函数:

无涯教程可以使用 AGE()函数来分析当前日期的年龄,以年,月和日为单位。

例如:在以下命令中,无涯教程使用 AGE()函数 Student_details 表中计算学生年龄。

SELECT Student_id, Stu_first_name,
Stu_last_name, AGE(Date_of_birth)
FROM Student_details;

执行完上述命令后,无涯教程将获得以下输出,其中显示了所有具有AGE()函数的学生的年龄。

PostgreSQL Date


在以下示例中,无涯教程将尝试检索 2010-10-08 上的学生年龄,如以下命令所示:

SELECT Student_id, Stu_first_name,
Stu_last_name, AGE('2010-10-08',Date_of_birth)
FROM Student_details;

成功执行上述命令后,无涯教程将获得以下输出,该输出显示指定日期值上所有学生的年龄

PostgreSQL Date

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

无涯教程可以使用 EXTRACT()函数从日期值中检索年,季度,月,周,日,

例如:在下面的命令中,无涯教程将从学生的出生日期中提取年,月和日:

SELECT Student_id, Stu_first_name,
Stu_last_name, 
EXTRACT (YEAR FROM Date_of_birth) AS YEAR,
EXTRACT (MONTH FROM Date_of_birth) AS MONTH,
EXTRACT (DAY FROM Date_of_birth) AS DAY
FROM Student_details;

无涯教程将在实施上面的命令方面获得以下结果,该命令分别显示年,月份和日期值。

PostgreSQL Date

获取当前日期

无涯教程可以使用内置的NOW()函数来检索当前日期和时间。如果无涯教程使用双冒号(::)将 DATETIME 值强制转换为 DATE 值,则只能检索日期列记录,而不能时间部分。

要返回数据库服务器的当前日期,无涯教程可以使用以下命令:

SELECT NOW()::date;

实施上述命令后,无涯教程将在输出中的 NOW()函数的帮助下获得当前日期,如下所示:

PostgreSQL Date

有一种方法可以获得使用 current_date 的当前日期,如下所示:

SELECT CURRENT_DATE;

执行上述语句后,无涯教程将获得以下输出,该输出基于数据库服务器显示当前日期

PostgreSQL Date


获取两个日期之间的间隔

无涯教程可以使用减号(-)来检索两个日期之间的间隔。让无涯教程看一个示例示例,以便无涯教程更好地理解:

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

SELECT Stu_first_name, Stu_last_name,
NOW() - Admission_date as Difference
FROM Student_details;

执行完以上命令后,无涯教程将得到以下输出:

PostgreSQL Date

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

无涯教程可以使用 TO_CHAR()函数来获取特定格式的Date值输出。 

在下面的示例中,无涯教程将以以下格式显示当前日期: yyyy/mm/dd,在下面的命令的帮助下:

SELECT TO_CHAR(NOW() ::DATE, 'YYYY/MM/DD');

成功执行上述命令后,无涯教程将获得类似的日期格式,无涯教程在上面的语句中提到了这种格式:

PostgreSQL Date

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

SELECT TO_CHAR(NOW() ::DATE, 'MON DD, YYYY');

执行完上述命令后,无涯教程将获得以下结果,该结果显示的格式与无涯教程在上面的语句中提供的格式相同。

无涯教程网

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

软件测试52讲 -〔茹炳晟〕

算法面试通关40讲 -〔覃超〕

Nginx核心知识150讲 -〔陶辉〕

Web安全攻防实战 -〔王昊天〕

性能优化高手课 -〔尉刚强〕

大数据经典论文解读 -〔徐文浩〕

全链路压测实战30讲 -〔高楼〕

深入C语言和程序运行原理 -〔于航〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)