📅  最后修改于: 2023-12-03 15:03:05.529000             🧑  作者: Mango
GET_FORMAT() 是 MySQL 数据库中的一个函数,用于获取和控制数字和日期时间值的显示格式。它返回一个字符串,表示给定类型值的格式化方式。通过此函数,程序员可以从 MySQL 中获得当前日期时间值和数字的格式,在特定情况下,也可以使用此函数自定义自己想要的格式。
GET_FORMAT(type, format)
type
(必选):指定要格式化的值的类型。可以是以下之一:
format
(可选):指定格式代码,用于控制值的显示形式。具体的格式代码按照参数类型稍后介绍。如果不指定,MySQL 将使用默认格式。
在 GET_FORMAT() 函数中使用的格式代码取决于类型参数。下面是各个类型对应的格式代码:
%a
:星期名称的缩写(Sun, Mon, Tue,等等)。%b
:月份名称的缩写(Jan, Feb, Mar,等等)。%c
:月份的数字(1,2,3,等等)。%D
:带有后缀的月份的日期数字(1st, 2nd, 3rd, 等等)。%d
:月份中的日期数字(01, 02, 03,等等)。%e
:月份中的日期数字(1, 2, 3,等等)。%f
:微秒(000000 - 999999)。%H
:24 小时格式的小时(00 - 23)。%h/%I
:12 小时格式的小时(00 - 12)。%j
:一年中的日期数字(001 - 366)。%k
:24 小时格式的小时(0 - 23)。%l
:12 小时格式的小时(1 - 12)。%M
:月份的名称(January, February, March,等等)。%m
:月份的数字(01, 02, 03,等等)。%p
:AM 或 PM。%r
:时间,12 小时制(hh:mm:ss AM 或 PM)。%S
:秒(00 - 59)。%s
:秒(00 - 59),返回时区值,取值为'+HH:MM' 或'-HH:MM'。%T
:时间,24 小时制(hh:mm:ss)。%U
:一年中的周数,周日作为一周的开始(00 - 53)。%u
:一周中的日期数字,这一周的星期一为一周的开始(00 - 53)。%V
:一年中的周数,星期一为一周的开始(01 - 53)。%v
:可以作为一年中的周数的一周中的日期数字(01 - 53)。%W
:星期的名称(Sunday, Monday, Tuesday,等等)。%w
:星期的数字,从 0(星期天)到 6(星期六)。%X
:一年的年度数字,其中周日是一年的开始(0000 - 9999)。%x
:一年的年度数字,其中星期一是一年的开始(0000 - 9999)。%Y
:4 位数字的年份。%y
:2 位数字的年份(00 - 99)。%Z
:基于时区的时间表示(-43200 到 43200)。%z
:以 UTC,GMT 或通用时区格式为基础的时区偏移表示(+HHMM 或-HHMM)。%f
:微秒(000000 - 999999)。%H
:24 小时制,其中 0 位补零(00 - 23)。%h/%I
:12 小时制,其中 0 位补零(00 - 12)。%i
:数字的分钟数(00 - 59)。%S
:数字的秒数(00 - 59)。%s
:数字的秒数,返回时区值,取值为'+HH:MM' 或'-HH:MM'。%T
:时间,24 小时制(hh:mm:ss)。%p
:AM 或 PM。%r
:时间,12 小时制(hh:mm:ss AM 或 PM)。%a
:星期名称的缩写(Sun, Mon, Tue,等等)。%b
:月份名称的缩写(Jan, Feb, Mar,等等)。%c
:月份的数字(1,2,3,等等)。%D
:带有后缀的日期数字(1st, 2nd, 3rd, 等等)。%d
:月份中的日期数字(01, 02, 03,等等)。%e
:月份中的日期数字(1, 2, 3,等等)。%f
:微秒(000000 - 999999)。%H
:24 小时制的小时(00 - 23)。%h/%I
:12 小时制的小时(00 - 12)。%j
:一年中的日期数字(001 - 366)。%k
:24 小时制的小时(0 - 23)。%l
:12 小时制的小时(1 - 12)。%M
:月份的名称(January, February, March,等等)。%m
:月份的数字(01, 02, 03,等等)。%p
:AM 或 PM。%r
:时间,12 小时制(hh:mm:ss AM 或 PM)。%S
:数字的秒数(00 - 59)。%s
:数字的秒数,返回时区值,取值为'+HH:MM' 或'-HH:MM'。%T
:时间,24 小时制(hh:mm:ss)。%U
:一年中的周数,其中周日作为一周的开始(00 - 53)。%u
:一周中的日期数字,其中星期天为一周的开始(00 - 53)。%V
:一年中的周数,其中星期一作为一周的开始(01 - 53)。%v
:可以作为一年中的周数的一周中的日期数字(01 - 53)。%W
:星期的名称(Sunday, Monday, Tuesday,等等)。%w
:星期的数字,从 0(星期天)到 6(星期六)。%Y
:4 位数字的年份。%y
:2 位数字的年份(00 - 99)。%X
:一年的年度数字,其中周日是一年的开始(0000 - 9999)。%x
:一年的年度数字,其中星期一是一年的开始(0000 - 9999)。%Z
:基于时区的时间表示(-43200 到 43200)。%z
:以 UTC,GMT 或通用时区格式为基础的时区偏移表示(+HHMM 或-HHMM)。%s
:正或负号,取决于值的符号。%-m.mn
:左对齐( -)。%m.mn
:右对齐,采用空格填充(默认值)。这会导致小数点位数为 m,宽度为 m + n + 1(当包括符号时)。%m.mnZ
:右对齐,采用零填充。这会导致小数点位数为 m,宽度为 m + n + 1(当包括符号时)。%M
:用于指定货币符号的格式。M(' ')
表示带空格的 USD 货币符号(默认),而 M('USD')
表示带 USD 货币符号。货币符号最多可以使用 3 个字符。%m
:最小要填充的数字数(在数字的左侧补零)。下面的示例演示了 GET_FORMAT() 函数的基本语法及其用法:
SELECT GET_FORMAT(DATE, DEFAULT) AS date_format,
GET_FORMAT(DATETIME, DEFAULT) AS datetime_format,
GET_FORMAT(TIMESTAMP, DEFAULT) AS timestamp_format,
GET_FORMAT(TIME, DEFAULT) AS time_format,
GET_FORMAT(DECIMAL(5,2), DEFAULT) AS decimal_format,
GET_FORMAT(UNSIGNED ZEROFILL, '%06') AS unsigned_zerofill_format;
上述示例将返回当前数据库中日期、日期时间、时间戳、时间、十进制数字和无符号数字的默认格式:
+--------------+------------------+-------------------+-------------+-----------------+------------------------------+
| date_format | datetime_format | timestamp_format | time_format | decimal_format | unsigned_zerofill_format |
+--------------+------------------+-------------------+-------------+-----------------+------------------------------+
| %Y-%m-%d | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H:%i:%s | %H:%i:%s | %s.%2$s | %06d |
+--------------+------------------+-------------------+-------------+-----------------+------------------------------+
对于 DATE 类型,使用代码 %Y-%m-%d
。对于 DATETIME 和 TIMESTAMP 类型,使用代码 %Y-%m-%d %H:%i:%s
。对于 TIME 类型,使用代码 %H:%i:%s
。对于 DECIMAL 类型和 UNSIGNED ZEROFILL 采用默认代码。在示例中,对于 UNSIGNED ZEROFILL 类型,使用了 %06d
来将数字填充到 6 位。
GET_FORMAT() 函数是 MySQL 数据库中一个非常有用的功能。它可以帮助程序员获取和控制数字和日期时间类型的格式,使他们能够更灵活地控制他们的程序。在学习使用此函数时,您需要了解要格式化的值的类型以及可用的格式代码。在使用此函数时,请始终确保使用合适的代码以避免出现问题。