在 MariaDB 中将时间显示 AM/PM 指示符
本文阐述了在 MariaDB 中将 AM/PM 添加到时间值的几个方法。
MariaDB 内置了许多可以返回指定格式的时间和日期值的函数,其中最常用的是 DATE_FORMAT()
和 TIME_FORMAT()
。
要将时间值使用 AM/PM 指示符,您需要使用 12 小时制格式化时间部分。结合几个格式说明符, 你可以轻松的做到显示 AM/PM 指示符。
格式说明符 %r
%r
格式说明符用于以 12 小时格式格式化时间,后跟 AM/PM 指示符。 %r
格式说明符相当于 '%I:%i:%S %p'
。
例:
SELECT DATE_FORMAT('2022-12-06 18:10:37', '%r');
输出:
+------------------------------------------+
| DATE_FORMAT('2022-12-06 18:10:37', '%r') |
+------------------------------------------+
| 08:10:37 PM |
+------------------------------------------+
当然,返回 AM
还是 PM
取决于实际时间。如果时间是 12:00:00
之前返回 AM
, 否则返回 PM
。即, AM
代表上午,PM
代表下午。
让我们看一下下面的时间位于 12:00:00
之前的这个例子:
SELECT DATE_FORMAT('2022-12-06 08:10:37', '%r');
输出:
+------------------------------------------+
| DATE_FORMAT('2022-12-06 08:10:37', '%r') |
+------------------------------------------+
| 08:10:37 AM |
+------------------------------------------+
与 DATE_FORMAT()
函数一样, TIME_FORMAT()
也接受 %r
格式说明符,正如下面的 TIME_FORMAT()
示例:
SELECT TIME_FORMAT('08:10:37', '%r');
输出:
+-------------------------------+
| TIME_FORMAT('08:10:37', '%r') |
+-------------------------------+
| 08:10:37 AM |
+-------------------------------+
TIME_FORMAT()
函数接受时间值和日期时间值,而 DATE_FORMAT()
仅接受日期和日期时间值。但是,TIME_FORMAT()
仅接受小时分钟和秒的格式说明符。
格式说明符 %p
%p
格式说明符是一种更具体的格式说明符,仅用于表示 AM/PM 指示符。它通常与其他格式说明符结合使用,以自定义格式返回时间。
如前所述,%r
格式说明符设置时间的格式,就好像它已使用以下格式字符串格式化一样:'%I:%i:%S %p'
。
让我们显式使用该字符串:
SELECT TIME_FORMAT('18:10:37', '%I:%i:%S %p');
输出:
+----------------------------------------+
| TIME_FORMAT('18:10:37', '%I:%i:%S %p') |
+----------------------------------------+
| 08:10:37 PM |
+----------------------------------------+
因此,我们得到的结果与使用 %r
格式说明符时的结果相同。
但是,使用此方法的一个好处是,我们可以以自己的自定义方式构造输出。
例如:
SELECT TIME_FORMAT('18:10:37', '%l:%i %p');
输出:
+-------------------------------------+
| TIME_FORMAT('18:10:37', '%l:%i %p') |
+-------------------------------------+
| 6:10 PM |
+-------------------------------------+
在这里,我们使用 %l
返回不带前导零的小时部分。我们还省略了时间的秒部分。
结论
本文阐述了在 MariaDB 中将 AM/PM 添加到时间值的几个方法:
- 使用
DATE_FORMAT()
或者TIME_FORMAT()
函数格式化输出时间值。 - 使用
%p
格式说明符输出 AM/PM 指示符。 - 使用
%r
格式说明符输出带有 AM/PM 指示符的时间。