VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

TIME_FORMAT

功能描述

TIME_FORMAT函数按照指定的格式格式化时间。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
  • 当第一参数time的hour部分超出[0, 23]的范围时, %H, %k和%T能够产生超出该范围的值,其余包含小时的format将转为取模12后的小时数。

    SELECT time_format('100:59:59', '%H|%k|%T|%I');
    

返回结果为:

  time_format
  ----------------------
  100|100|100:59:59|04
  (1 row)
  • 对于非时分秒相关的格式,会返回0或NULL,包括:

格式 返回结果
%a、%b、%D、%j、%M、%U、%u、%V、%v、%W、%w、%X、%x NULL
%c 、%e 0
%d、%m、%y 00
%Y 0000

  • 提取的时间值最多保留六位小数。
  • 如果其中任何一个参数为NULL,TIME_FORMAT函数将返回 NULL。

语法格式

TIME_FORMAT(time,format)

参数说明

  • time

    需要格式化的时间,time或datetime表达式。

  • format

规定日期/时间的输出格式。支持的格式如下表所示:

格式 描述
%f 微秒(000000至999999)
%H 小时(00,24小时格式,但能超出23)
%h 小时(00到12)
%I 小时(00到12)
%i 分钟(00至59)
%p AM or PM
%r 时间为12小时AM或PM格式(hh:mm:ss AM / PM)
%S 秒(00到59)
%s 秒(00到59)
%T 24小时格式的时间(hh:mm:ss),小时数能超出23
%k 小时数 (0,24小时格式,但能超出23)

示例

SELECT TIME_FORMAT('83:59:59.0000009', '%T|%r|%H|%h|%I|%i|%S|%f|%p|%k');
SELECT TIME_FORMAT('2022-1-1 23:59:59.0000009', '%T|%r|%H|%h|%I|%i|%S|%f|%p|%k');

返回结果分别为:

                   time_format
--------------------------------------------------
 83:59:59|11:59:59 AM|83|11|11|59|59|000001|AM|83
(1 row)

                   time_format
--------------------------------------------------
 23:59:59|11:59:59 PM|23|11|11|59|59|000001|PM|23
(1 row)