PostgreSQL日期-PostgreSQL教程|
PostgreSQL 日期
在本节中,我们要了解的工作PostgreSQL的日期数据类型,例子中的日期数据类型,以及一些访问日期的功能,我们能够处理哪些帮助日期值更有效。
什么是 PostgreSQL 日期数据类型?
PostgreSQL 中的另一种数据类型是DATE,用于存储日期值。
在PostgreSQL 中,Date 数据类型格式为YYYY-MM-DD,这有助于我们将日期记录存储并插入到日期列中。
Date 数据类型涉及4 个字节的存储大小。日期数据类型的最小和最大范围从4713 BC 到 5874897 AD或1000-01-01 到 9999-12-31。
如果我们想在创建包含 Date 列的新表时使用当前日期作为列的默认值,我们可以在DEFAULT关键字之后使用CURRENT_DATE。
PostgreSQL 日期数据类型示例
让我们看一个示例示例,以了解PostgreSQL 日期数据类型的工作原理。
我们正在使用 CREATE 命令的帮助创建一个新表作为记录,并使用INSERT 命令插入一些值。
要将记录创建到组织数据库中,我们使用CREATE命令。
该记录表包含各列如Records_id,标题和Submission_date,并为Submission_date列,我们使用DATE数据类型,并接受当前日期为默认值。
CREATE TABLE Records (
Records_id serial PRIMARY KEY,
Heading VARCHAR NOT NULL,
Submission _date DATE NOT NULL DEFAULT CURRENT_DATE
);
输出
在执行上述命令时,我们将收到以下消息,显示Records表已成功创建。
当Records表创建成功后,我们将在INSERT命令的帮助下向其中插入一些值。
INSERT INTO Records (Heading)
VALUES
('Invoice to Client ABC'),
('Invoice to Client PQR'),
('Invoice to client XYZ');
输出
执行上述命令后,我们将得到如下消息窗口,显示指定的值已成功插入到Records表中。
创建并插入Records表的值后,我们将使用SELECT命令返回Records表的所有行:
SELECT *
FROM Records;
输出
成功执行上述命令后,我们将得到以下输出,其中显示了Records表中的所有数据:
注意:根据数据库服务器的当前日期,我们可能会得到不同的Submission_date 值。
PostgreSQL 日期函数示例
我们有以下日期函数,例如NOW()、AGE()、EXTRACT()、TO_CHAR() 等,在 PostgreSQL 中可用,它们有助于我们在使用Date 数据类型时提高性能。
让我们看不同的例子来理解PostgreSQL 日期函数是如何工作的。
首先,我们使用 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表已成功创建到组织数据库中。
一旦生成了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表中。
一旦我们完成了Student_details表的创建和插入,我们将看到以下日期数据类型函数:
以年、月和日为单位评估年龄
我们可以使用AGE()函数以年、月和日为单位分析当前日期的年龄。
例如:在下面的命令中,我们使用AGE() 函数从Student_details表中计算学生的年龄。
SELECT Student_id, Stu_first_name,
Stu_last_name, AGE(Date_of_birth)
FROM Student_details;
输出
执行上述命令后,我们将得到以下输出,其中显示了所有具有 AGE() 函数的学生的年龄。
假设我们将一个日期值传递给AGE() 函数,它将从现有日期中减去该日期值。如果我们向 AGE() 函数传递两个参数,它将从初始参数中取出第二个参数。
让我们看一个示例来详细了解:
在下面的示例中,我们将尝试检索2010-10-08学生的年龄,如以下命令所示:
SELECT Student_id, Stu_first_name,
Stu_last_name, AGE('2010-10-08',Date_of_birth)
FROM Student_details;
输出
成功执行上述命令后,我们将得到以下输出,其中显示了指定日期值上所有学生的年龄。
从日期值中提取年、季度、月、周、日
我们可以使用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;
输出
执行上述命令,我们将得到以下结果,分别显示年、月和日值。
获取当前日期
我们可以使用内置的 NOW() 函数来检索当前日期和时间。如果我们使用双冒号(::) 将DATETIME值转换为DATE值,我们只能检索没有时间部分的日期列记录。
要返回数据库服务器的当前日期,我们可以使用以下命令:
SELECT NOW()::date;
输出
执行上述命令后,我们将借助输出中的NOW() 函数获取当前日期,如下所示:
有一种获取当前日期以使用CURRENT_DATE的附加方法,如下所示:
SELECT CURRENT_DATE;
输出
执行上述语句后,我们将得到以下输出,该输出显示基于数据库服务器的当前日期。
注意:输出采用以下格式:YYYY-MM-DD。虽然,我们可以得到各种格式的日期值的结果。
获取两个日期之间的间隔
我们可以使用减号 (-) 运算符来检索两个日期之间的间隔。
让我们看一个示例以更好地理解:
下面的命令用于通过从当前或今天的日期减去admission_date列中的值来获得学生的总天数:
SELECT Stu_first_name, Stu_last_name,
NOW() - Admission_date as Difference
FROM Student_details;
输出
执行上述命令后,我们将得到以下输出:
以特定格式获取 PostgreSQL 日期值的输出
我们可以使用TO_CHAR() 函数以特定格式获取日期值输出。而TO_CHAR()函数用于带两个参数。
在第一个参数是价值,我们希望的格式,而另外一个是模板是指定的输出格式。
在下面的示例中,我们将在以下命令的帮助下以以下格式显示当前日期:YYYY/MM/DD:
SELECT TO_CHAR(NOW() :: DATE, 'YYYY/MM/DD');
输出
成功执行上面的命令后,我们会得到一个类似的日期格式,我们在上面的语句中提到过:
或者,如果我们想查看以下格式的日期,我们可以使用以下命令:SEP 29, 2020:
SELECT TO_CHAR(NOW() :: DATE, 'MON DD, YYYY');
输出
执行上述命令后,我们将得到以下结果,其显示的格式与我们在上述语句中提供的格式相同:
概述
在PostgreSQL 日期数据类型部分,我们学习了以下主题:
- 的PostgreSQL的日期数据类型用于存储的时间值以用于指定列。
- 我们使用了不同的 DATE 函数,例如NOW()、AGE()、EXTRACT() 和 TO_CHAR()来增强和处理特定表中的DATE值。
- 我们使用CURRENT_DATE关键字来检索表中特定列的当前日期。
相关文章:
- [PostgreSQL教程]PostgreSQL特性-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL版本-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL语法-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL序列-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL数字-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL字符-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL文本-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL变量-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL整数-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL串行-PostgreSQL教程|
相关推荐:
- [PostgreSQL教程]PostgreSQL与SQLite-PostgreSQL教程|
- [PostgreSQL教程]MongoDB与PostgreSQL-PostgreSQL教程|
- [PostgreSQL教程]psqlcommands-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQLDate&TimeFunction-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQLFunctions-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQLMulti-columnIndexes-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL禁用触发器-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL左连接-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQLANDCondition-PostgreSQL教程|
- [PostgreSQL教程]PostgreSQL获取子句-PostgreSQL教程|
- PostgreSQL与SQLite-PostgreSQL教程|
- PostgreSQL与Oracle-PostgreSQL教程|
- PostgreSQL与MariaDB-PostgreSQL教程|
- PostgreSQL与SQLServer-PostgreSQL教程|
- MongoDB与PostgreSQL-PostgreSQL教程|
- PostgreSQLEXCEPT-PostgreSQL教程|
- PostgreSQLINTERSECT-PostgreSQL教程|
- PostgreSQLUnion-PostgreSQL教程|
- psqlcommands-PostgreSQL教程|
- PostgreSQLDate&TimeFunction-PostgreSQL教程|
- PostgreSQL删除触发器-PostgreSQL教程|
- PostgreSQLOrderby子句-PostgreSQL教程|
- PostgreSQL与SQLite-PostgreSQL教程|
- PostgreSQLINTERSECT-PostgreSQL教程|
- PostgreSQLAlias-PostgreSQL教程|
- PostgreSQLNot-NullConstraint-PostgreSQL教程|
- PostgreSQL与MariaDB-PostgreSQL教程|
- PostgreSQLUnion-PostgreSQL教程|
- PostgreSQLMulti-columnIndexes-PostgreSQL教程|
- PostgreSQL左连接-PostgreSQL教程|