PostgreSQL 时间17 Mar 2025 | 6 分钟阅读 在本节中,我们将了解 PostgreSQL Time 数据类型的工作原理。我们还将看到 Time 数据类型的示例,并且还将看到一些可用的时间函数,这些函数有助于我们更有效地处理时间值。 什么是 PostgreSQL 时间数据类型?在 PostgreSQL 中,下一个数据类型是 TIME,它存储一天中的时间值。 PostgreSQL 时间数据类型需要 8 字节的存储空间,精度高达 6 位,时间数据类型的范围从 00:00:00 到 24:00:00。 注意:这里的精度用于定义秒字段中放置的小数位数。PostgreSQL 时间数据类型的语法PostgreSQL 时间数据类型语法如下 通常,我们将使用以下 TIME 格式,如下所示 或者,如果我们想使用精度,那么我们将使用以下 Time 格式: 注意:在上述格式中,P 用于表示精度值。让我们看一些 TIME 值格式的示例,以便更好地理解 首先,我们将看到不带精度的时间格式值的示例 现在,我们将看到带精度的时间格式值的示例 注意:通常,PostgreSQL 接受几乎所有合理的时间格式,包括 SQL 兼容、ISO 8601 等。PostgreSQL TIME 数据类型的示例让我们看一个示例来理解 PostgreSQL Time 数据类型的工作原理。 我们正在使用 CREATE 命令创建一个新表 Work_schedules,并使用 INSERT 命令插入一些值。 要在 Organization 数据库中创建 Work_schedules,我们使用 CREATE 命令。 Work_schedules 表包含各种列,例如 Comapny_id、Working_schedule、Login 和 Logout,对于 Login 和 Logout 列,我们使用 Time 数据类型,如以下命令所示 输出 执行上述命令后,我们将收到以下消息:Work_schedules 表已成功创建。 ![]() 当 Work_schedules 表成功创建后,我们将使用 INSERT 命令向其中插入一些值。 输出 执行上述命令后,我们将收到以下消息窗口,其中显示特定值已成功插入到 Work_schedules 表中。 ![]() 在创建并插入 Work_schedules 表的值后,我们将使用 SELECT 命令返回 Work_schedules 表的所有行 输出 成功执行上述命令后,我们将得到以下输出,显示 Work_schedules 表中存在的所有数据 ![]() 带时区的 PostgreSQL TIME 类型PostgreSQL 允许我们使用 TIME with time zone 数据类型以及 TIME 数据类型,这允许我们通过时区部署和检索一天中的时间。 要声明数据类型为 TIME with time zone 的列,我们将使用以下语法 TIME with time zone 数据类型包含 12 字节,这允许我们存储带有从 00:00:00+1459 到 24:00:00-1459 范围的时区的时间值。 以下示例用于显示 TIME with time zone 值: PostgreSQL 时间函数示例我们有以下 时间函数,例如 CURRENT_TIME、CURRENT_TIME(precision)、LOCAL_TIME、LOCALTIME(precision)、EXTRACT()、将时间值转换为不同时区以及对时间值使用算术运算符,这些函数在 PostgreSQL 中可用,有助于我们在使用 时间数据类型时提高性能。 让我们看不同的示例来理解 PostgreSQL 时间函数的工作原理。
我们可以使用 CURRENT_TIME 函数检索带时区的当前时间。 要返回数据库服务器的当前时间,我们可以使用以下命令 输出 执行上述命令后,我们将在输出中借助 CURRENT_TIME 函数获得当前时间,如下所示 ![]() 我们可以使用 CURRENT_TIME(precision) 函数检索具有特定精度的当前时间。 让我们看一个示例,以便更好地理解。 以下命令用于获取具有指定精度的当前时间 输出 执行上述命令后,我们将得到以下输出,其中显示了具有精确精度的现有时间: ![]() 注意:如我们在这两个语句中看到的,如果我们在没有精度的情况下定义 CURRENT_TIME 函数,它将返回具有完整可用精度的时间值。
我们可以使用 LOCALTIME 函数检索本地时间,如以下命令所示 输出 执行上述命令后,我们将得到以下输出,其中显示了本地时间 ![]() 在 PostgreSQL 中,我们有 LOCALTIME(precision) 函数,它用于检索具有特定精度的本地时间,就像我们借助 CURRENT_TIME(precision) 函数找到当前时间精度一样。 在以下示例中,我们使用 LOCALTIME(precision) 函数获取具有指定精度的本地时间。 输出 执行上述命令后,我们将得到以下输出,其中显示了具有精确精度的本地时间: ![]()
以下语法用于将时间更改为不同的时区 让我们看一个示例来详细了解。 在以下示例中,我们将尝试将本地时间更改为 PST(太平洋标准时间)时区的时间,如以下命令所示 输出 成功执行上述命令后,我们将得到以下输出,其中显示本地时间已转换为 PST 时区。 ![]()
我们可以使用 EXTRACT 函数从时间值中提取小时、分钟、秒。 以下语法用于提取 PostgreSQL 时间数据类型的小时、分钟、秒 注意:在上述语法中,字段可以是小时、分钟、秒、毫秒。让我们看一个示例,其中我们尝试将 EXTRACT() 函数与 CURRENT_TIME(precision) 函数一起使用到 SELECT 命令中 输出 执行上述命令后,我们将得到以下输出,其中将 CURRENT_TIME(0) 提取为小时、分钟、秒和毫秒: ![]()
在 PostgreSQL 中,我们可以对时间值以及时间值和间隔值之间使用算术运算符,例如 +、- 和 *。 在以下示例中,它用于返回两个时间值之间的间隔 输出 执行以下命令后,我们将得到以下结果,其中显示了 09:00- 03:00 之间的时间间隔。 ![]() 如果我们想在本地时间中添加 3 小时,我们将使用以下命令 输出 执行上述命令后,我们将获得以下结果 ![]() 注意:在上述示例中,时间值是时间值和间隔值之和。概述在 PostgreSQL 时间数据类型部分,我们学习了以下主题
下一主题PostgreSQL 时间戳 |
我们请求您订阅我们的新闻通讯以获取最新更新。