Navicat 博客

在 Navicat 中格式化日期和时间 2023 年 12 月 1 日,由 Robert Gravelle 撰写

Navicat 支持团队收到来自用户常问的一个问题是,如何将网格和表单视图中的日期和时间进行格式化。其实这个很简单。今天,我们将介绍在 Navicat Premium 中进行全局修改日期和时间格式的步骤。

Navicat 定义的显示格式选项

你可以在“选项”对话中的“记录”页面设置日期和时间的显示格式。通过点击主菜单中的“工具”->“选项”来访问它:

options_command (43K)

在“记录”页面的“显示格式”部分,我们可以看到日期、时间和日期时间格式(红色框标注部分):

date_and_time_display_formats_on_the_records_screen (70K)

设置格式

以 Sakila 示例数据库为例,对其日期时间格式进行更新。Sakila 数据库中大多数表都包含日期时间字段,名为 last_update,可用于审计。我们可以从截图中的 actor 表中看到(红色框标注部分)它:

last_update_column_in_sakila_actor_table (120K)

默认情况下,Navicat 以数据库定义的格式来显示日期和时间。在 MySQL 中,以“YYYY-MM-DD hh:mm:ss”格式显示日期时间,如“2019-10-12 14:35:18”(注意使用24小时制)。

标准 SQL 和 ODBC 的日期和时间字符

“YYYY-MM-DD hh:mm:ss”字符串中的字母含义是标准 SQL 和 ODBC 日期和时间字符的一部分,这些是表示 SQL 查询中的日期和时间值的标准化方法。它们为在 SQL 语句中指定日期和时间值提供了一个一致且与平台独立的方法。以下是一个包含每个字母样式及其含义的列表。你需要熟悉它们,因为 Navicat 也使用它们来设置日期和时间格式:

  • c - 使用系统全局变量指定的格式显示日期,然后使用系统全局变量指定的格式显示时间。 如果日期时间值恰好为午夜,则不显示时间。
  • d - 将日显示为无前导零的数字(1-31)。
  • dd - 将日显示为有前导零的数字(01-31)。
  • ddd - 将日显示为缩写(Sun-Sat)。
  • dddd - 将日显示为完整名称(Sunday-Saturday)。
  • ddddd - 使用系统全局变量指定的格式显示日。
  • dddddd - 使用系统全局变量指定的格式显示日。
  • m - 显示没有前导零的月份数字(1-12)。如果 m 说明符紧跟在 h 或 hh 说明符后面,则显示分钟而不是月份。
  • mm - 显示有前导零的月份数字(01-12)。如果 mm 说明符紧跟在 h 或 hh 说明符后面,则显示分钟而不是月份。
  • mmm - 使用系统全局变量中提供的字符串,将月份显示为缩写形式(Jan-Dec)。
  • mmmm - 使用系统全局变量中提供的字符串,将月份显示为完整名称(January-December)。
  • yy - 将年份显示为两位数(00-99)。
  • yyyy - 将年份显示为四位数(0000-9999)。
  • h - 将小时数显示为有前导零的数字(00-23)。
  • hh - 将小时数显示为有前导零的数字(00-23)。
  • n - 将分钟数显示为无前导零的数字(0-59)。
  • nn - 将分钟数显示为有前导零的数字(00-59)。
  • s - 秒数显示为无前导零的数字(0-59)。
  • ss - 将秒数显示为有前导零的数字(0-59)。
  • t - 使用系统全局变量指定的格式显示时间。
  • tt - 使用系统全局变量指定的格式显示时间。
  • am/pm - 对于前面的 h 或 hh 说明符使用 12 小时制,则中午之前的任何小时显示 'am',中午之后的任何小时显示 'pm'。am/pm 说明符可以使用小写、大写或混合大小写,并相应地显示结果。
  • a/p - 对于前面的h或hh说明符使用 12 小时制,则中午之前的任何小时显示 'a',中午之后的任何小时显示 'p'。a/p 说明符可以使用小写、大写或混合大小写,并相应地显示结果。
  • ampm - 对于前面的 h 或 hh 说明符使用 12 小时制,中午之前的任何小时显示系统全局变量的内容,对于中午之后的任何小时显示系统全局变量的内容。
  • / - 日期分隔符。在一些地区,可能会使用其他字符来表示日期分隔符。
  • : - 时间分隔符。在一些地区,可能会使用其他字符来表示时间分隔符。
  • 'xx' 或 "xx" - 用单引号或双引号括起来的字符会按原样显示,格式不会发生更改。

现在,让我们将全局 Navicat 日期时间格式更改为不带前导零的数字日期、三个字母的月份缩写以及包括 AM 或 PM 指示符的 12 小时制时间来表示。

将上述指令作为指南,将得出格式字符串“mmm d, yyyy hh:mm:ss AM/PM”。在输入时,我们可以在“输出”字段中实时查看结果:

output_field (16K)

点击“确定”按钮并关闭选项对话框后,所有的日期时间字段都将使用我们定义的日期时间格式显示。这是我们前面提到的 actor 表的 last_update 列:

last_update_column_in_sakila_actor_table_with_new_format (73K)

请记住,新格式将适用于所有数据库。为了确认这一点,让我们看一下 classicmodels 数据库中的 orders 表。它包含三个日期时间列,但只设置了日期部分。这些列也将按照我们的新格式显示其值:

classicmodels_orders_table_with_new_format (146K)

结语

本文中,我们了解了如何在“选项”对话框中轻松地修改全局的日期和时间格式。虽然我们今天在这里使用的是 Navicat Premium ,但是,其他 Navicat 产品(如 Navicat for MySQL 或 Navicat for SQL Server)的操作方式完全相同。

Navicat 文章
频道条目
分享
文章归档