PostgreSQL时间-PostgreSQL教程|
PostgreSQL 时间
在本节中,我们将了解PostgreSQL 时间数据类型的工作原理。我们还看到了Time 数据类型的**示例**,我们还看到了一些可访问的时间函数,它们帮助我们更有效地处理时间值。
什么是 PostgreSQL 时间数据类型?
在PostgreSQL 中,下一个数据类型是TIME,它存储时间值。
PostgreSQL 时间数据类型涉及8 字节存储和最多6 位精度,时间数据类型的范围从 00:00:00 到 24:00:00。
注意:这里,精度用于定义放置在第二个字段中的小数位数。
PostgreSQL 时间数据类型的语法
PostgreSQL 时间数据类型语法如下:
- 列名时间(精度);
一般我们会使用以下TIME格式,如下图:
HH:MM
HH:MM:SS
HHMMSS
或者如果我们想使用精度,那么我们将使用以下**时间格式:
MM:SS.pppppp
HH:MM:SS.pppppp
HHMMSS.pppppp
注意:在上述格式中,P 用于精度值。
让我们看一些TIME 值格式的示例,以便更好地理解:
首先,我们将看到不精确时间格式值的示例示例:
06:05
06:05:04
060504
现在,我们将看到具有精确时间格式值的示例示例:
06:59.999999
06:05:04.333333
060504.3333333
注意:通常,PostgreSQL 采用几乎任何合理的 TIME 格式以及 SQL 兼容、ISO 8601 等。
PostgreSQL TIME 数据类型示例
让我们看一个示例以了解PostgreSQL Time 数据类型的工作原理。
我们正在使用 CREATE 命令的帮助创建一个作为Work_schedules 的新表,并使用INSERT 命令插入一些值。
要将Work_schedules创建到组织数据库中,我们使用CREATE命令。
该Work_schedules表包含各列如Comapny_id,Working_schedule,登录和注销,并为登录和注销列,我们使用的时间数据类型,如下面的命令所示:
CREATE TABLE Work_schedules (
company_id serial PRIMARY KEY,
Working_schedule VARCHAR NOT NULL,
Login TIME NOT NULL,
Logout TIME NOT NULL
);
输出
执行上述命令时,我们将收到以下消息:Work_schedules表已成功创建。
当Work_schedules成功创建表,我们将插入一些值与INSERT命令的帮助。
INSERT INTO Work_schedules(Working_schedule,Login,Logout)
VALUES
('First shift', '09:00:00', '17:00:00'),
('Second shift', '13:00:00', '21:00:00'),
('Third shift', '16:00:00', '23:00:00'),
('Weekend Shift', '09:00:00', '14:00:00');
输出
执行上述命令后,我们将得到以下消息窗口,其中显示特定值已成功插入到Work_schedules表中。
创建并插入Work_schedules表的值后,我们将使用SELECT命令返回Work_schedules表的所有行:
SELECT *
FROM Work_schedules;
输出
成功执行上述命令后,我们将得到以下输出,其中显示了Work_schedules表中的所有数据:
具有时区类型的 PostgreSQL TIME
PostgreSQL 允许我们使用TIME 时区数据类型以及TIME 数据类型,这允许我们通过时区部署和检索一天中的时间。
要声明数据类型为带时区的 TIME列,我们将使用以下语法:
column TIME with time zone
TIME with time zone 数据类型包含12 个字节,它允许我们存储一个时间值,时区从00:00:00+1459 到 24:00:00-1459范围。
以下示例用于显示具有时区值的TIME:
06:05:04 IST
06:05:04.123-2
PostgreSQL 时间函数示例
我们有以下时间函数,例如CURRENT_TIME、CURRENT_TIME(precision)、LOCAL_TIME、LOCALTIME(precision)、EXTRACT(),将时间值转换为不同的时区,以及对 PostgreSQL 中可用的时间值使用算术运算符,这对我们有帮助在我们使用ime 数据类型时提高性能。
让我们看不同的例子来理解PostgreSQL 时间函数是如何工作的。
- 获取当前时间
我们可以使用CURRENT_TIME函数来检索当前时间和时区。
要返回数据库服务器的当前时间,我们可以使用以下命令:
SELECT CURRENT_TIME;
输出
执行上述命令后,我们将在输出中借助CURRENT_TIME函数获取当前时间,如下图:
我们可以使用CURRENT_TIME(precision)函数以特定的精度检索当前时间 。
让我们看一个示例以更好地理解。
以下命令用于以指定的精度获取当前时间:
SELECT CURRENT_TIME(4);
输出
执行上述命令后,我们将得到以下输出,其中精确显示了现有时间:
注意:正如我们在两个语句中看到的那样,如果我们定义了没有精度的 CURRENT_TIME 函数,那么它将返回一个具有完全可访问精度的时间值。
- 获取当地时间
我们可以使用LOCALTIME 函数来检索本地时间,如下面的命令所示:
SELECT LOCALTIME;
输出
执行上述命令后,我们将得到以下输出,其中显示了本地时间:
在 PostgreSQL 中,我们有LOCALTIME(precision) 函数,它用于以特定精度检索本地时间,就像我们在CURRENT_TIME(precision) 函数的帮助下找到当前时间精度一样。
在下面的示例中,我们使用LOCALTIME(precision)函数以指定的精度获取本地时间。
SELECT LOCALTIME(1);
输出
执行上述命令后,我们将得到以下输出,它以精确的精度显示本地时间:
- 将时间更改为不同的时区
以下语法用于将时间更改为不同的时区:
[TIME with time zone] AT TIME ZONE time_zone
让我们看一个示例来详细了解:
在下面的示例中,我们将尝试将本地时间更改为PST(太平洋标准时间)时区的时间,如以下命令所示:
SELECT LOCALTIME AT TIME ZONE 'PST';
输出
成功执行上述命令后,我们将得到以下输出,显示本地时间已转换为 PST 时区。
- 从时间值中提取小时、分钟、秒
我们可以使用EXTRACT 函数从时间值中提取小时、分钟、秒。
以下语法用于提取PostgreSQL 时间数据类型的小时、分钟、秒:
EXTRACT(field FROM time_value);
注意:在上面的语法中,字段可以是小时、分钟、秒、毫秒。
让我们看一个示例示例,我们尝试在SELECT 命令中使用EXTRACT()函数和CURRENT_TIME(precision) 函数:
SELECT CURRENT_TIME(0),
EXTRACT (HOUR FROM CURRENT_TIME) as Hour,
EXTRACT (MINUTE FROM CURRENT_TIME) as Minute,
EXTRACT (SECOND FROM CURRENT_TIME) as Second,
EXTRACT (milliseconds FROM CURRENT_TIME) as Milliseconds;
输出
执行上述命令后,我们将得到以下输出,它将CURRENT_TIME(0)提取为小时、分钟、秒和毫秒:
- 时间值的算术运算
在PostgreSQL里,我们可以用算术运算符像 +, - ,*,并在时间值和之间的时间和间隔时间值。
在下面的示例中,它用于返回两个时间值之间的间隔:
SELECT time '09:00' - time '03:00' AS result;
输出
执行以下命令,我们将得到以下结果,该命令显示09:00-03:00之间的时间间隔。
如果我们想为本地时间增加 3 小时,我们将使用以下命令:
SELECT LOCALTIME + interval '3 hours' AS Output;
输出
执行上述命令后,我们将得到如下结果:
注意:在上面的例子中,时间值是一个时间值和一个间隔值的总和。
概述
在PostgreSQL 时间数据类型部分,我们学习了以下主题:
- PostgreSQL的时间数据类型被用来存储时间值指定列。
- 我们使用了不同的TIME 函数,例如,CURRENT_TIME、CURRENT_TIME(precision)、LOCAL_TIME、LOCAL_TIME(precision)、EXTRACT()来增强和处理特定表中的 TIME 值。
- 我们可以将Time 值转换为不同的时区。
- 我们在时间值上使用算术运算符来找到时间间隔和时间值的总和。
相关文章:
- [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教程|