PostgreSQL 时间
在本节中,我们将了解
PostgreSQL Time数据类型的工作原理。我们还看到了
时间数据类型的
示例,并且还看到了一些可访问的时间函数,这些函数可以帮助我们更有效地处理时间值。
什么是PostgreSQL时间数据类型?
在 PostgreSQL 中,下一个数据类型为
TIME ,它存储
天数时间值。
PostgreSQL时间数据类型涉及
8个字节的存储空间且精度最高为
6位数字,并且时间数据类型的范围从00:00:00到24:00:00。
注意: 此处,精度用于定义放置在第二个字段中的小数位数。
PostgreSQL时间数据类型的语法
PostgreSQL时间数据类型的语法如下:
column_name TIME(precision);
通常,我们将使用以下
TIME格式,如下所示:
或者如果要使用精度,则将使用以下
时间格式:
MM:SS.pppppp
HH:MM:SS.pppppp
HHMMSS.pppppp
注意: 在上述格式中,P用于精度值。
让我们看一些
TIME值格式的示例,以便我们更好地理解:
首先,我们将看到
没有精确的时间格式值:
现在,我们将看到
具有精确时间格式值的示例示例:
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 表具有已成功创建。
工作时间表 表创建成功,我们将在
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数据类型包含
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(精度),EXTRACT(),将时间值转换为其他时区,并对PostgreSQL中可用的时间值使用算术运算符,这有助于我们在使用
ime数据类型时提高性能。
让我们看看不同的示例,以了解
PostgreSQL时间函数的工作原理。
获取当前时间
我们可以使用
CURRENT_TIME 函数检索带有时区的
当前时间。
返回当前时间数据库服务器,我们可以使用以下命令:
输出
执行上述命令后,我们将借助
CURRENT_TIME函数获得
当前时间。 >在输出中,如下所示:
我们可以使用
CURRENT_TIME(precision)功能,以
特定精度检索
当前时间时间。
让我们看一个示例示例,以便我们更好地理解。
以下命令用于以指定的精度获取
当前时间:
输出
执行上述命令后,我们将获得以下输出,该输出显示
精确存在的时间:
注意: 正如我们在两条语句中所看到的,如果我们定义不带精度的CURRENT_TIME函数,则它将返回具有完全可访问精度的时间值。
获取本地时间
我们可以使用
LOCALTIME函数来获取本地时间,如以下命令所示:
输出
在执行上述命令时,我们将获得以下显示本地时间的输出:
在PostgreSQL中,我们具有
LOCALTIME(precision)函数,该函数用于检索特定时间的本地时间像我们在
CURRENT_TIME(precision)函数的帮助下找到
当前时间精度一样。
在下面的示例中,我们使用了
LOCALTIME(precision)函数可获取具有指定精度的本地时间。
输出
执行上述命令后,我们将获得以下输出,该输出显示
本地时间的精确度:
将时间更改为其他时区
以下语法用于将时间更改为其他时区:
[TIME with time zone] AT TIME ZONE time_zone
让我们看一个示例示例来详细了解:
在下面的示例中,我们将尝试将本地时间更改为时区
PST(太平洋标准时间),如以下命令所示:
SELECT LOCALTIME AT TIME ZONE 'PST';
输出
成功执行以上命令后,我们将获得以下输出,显示本地时间已转换为PST时区。
从时间值中提取小时,分钟,秒
我们可以使用
EXTRACT函数从时间值中提取小时,分钟,秒。
以下语法用于提取
小时,分钟,秒(用于PostgreSQL时间数据类型):
EXTRACT(field FROM time_value);
注意: 在上面的语法中,该字段可以是小时,分钟,秒和毫秒。
让我们看一个示例示例,我们尝试将
EXTRACT()函数与
CURRENT_TIME(precision)函数一起使用 SELECT命令:
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时间数据类型 e部分,我们学习了以下主题:
PostgreSQL时间数据类型用于存储指定列的时间值。
我们使用了不同的 TIME函数,例如, CURRENT_TIME,CURRENT_TIME(精度),LOCAL_TIME,LOCAL_TIME(精度),EXTRACT(),以增强和处理特定表中的TIME值。
我们可以将时间值转换为不同时区。
我们使用了时间值算术运算符来找到时间间隔和时间值之和。