PostgreSQL 时间 PostgreSQL 日期 PostgreSQL timestamp 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 timestamp