更新时间:2024-06-29 GMT+08:00

time_format

time_format(time, fmt)

描述:time_format函数将日期参数按照fmt指定的格式转换为字符串。与date_format函数类似,但格式字符串只能包含小时、分钟、秒和微秒的格式说明符,如果包含其他说明符则会返回NULL值或0。

返回值类型:text

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
SELECT time_format('2009-10-04 22:23:00', '%M %D %W');
    time_format
--------------------
 
(1 row)
SELECT time_format('2021-02-20 08:30:45', '%Y-%m-%d %H:%i:%S');
     time_format
---------------------
 0000-00-00 08:30:45
(1 row)
SELECT time_format('2021-02-20 18:10:15', '%r-%T');
     time_format
----------------------
 06:10:15 PM-18:10:15
(1 row)

time_format仅支持时间相关的格式输出(%f、%H、%h、%I、%i、%k、%l、%p、%r、%S、%s、%T),不支持日期相关格式,其他情况处理为普通字符。

str_to_date(str, format)

描述:将日期/时间格式的字符串(str),按照所提供的显示格式(format)转换为日期类型的值。

返回值类型:timestamp

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT str_to_date('01,5,2021','%d,%m,%Y');
     str_to_date
---------------------
 2021-05-01 00:00:00
(1 row)
SELECT str_to_date('01,5,2021,09,30,17','%d,%m,%Y,%h,%i,%s');
     str_to_date
---------------------
 2021-05-01 09:30:17
(1 row)

适用于str_to_date的格式化输入的格式类型参考表1。这里仅支持“日期”格式、“日期+时间”格式的输入转换,对于仅“时间”格式的输入场景请使用str_to_time。

str_to_time(str, format)

描述:将时间格式的字符串(str),按照所提供的显示格式(format)转换为时间类型的值。

返回值类型:time

示例:

1
2
3
4
5
SELECT str_to_time('09:30:17','%h:%i:%s');
 str_to_time
-------------
 09:30:17
(1 row)

适用于str_to_time的格式化输入的格式类型参考表1,这里仅支持“时间”格式的输入转换,对于“日期”格式、“日期+时间”格式的输入场景请使用str_to_date。

week(date[, mode])

描述:根据模式返回指定日期时间所处年份中对应的周数,默认模式为0。

返回值类型:integer

表1 week函数中mode模式的工作原理

模式

一周的第一天

周数范围

第一周的判断规则

0

星期日

0-53

元旦后的第一个星期日所在周

1

星期一

0-53

元旦后有四天或者更多天所在周

2

星期日

1-53

元旦后的第一个星期日所在周

3

星期一

1-53

元旦后有四天或者更多天所在周

4

星期日

0-53

元旦后有四天或者更多天所在周

5

星期一

0-53

元旦后的第一个星期一所在周

6

星期日

1-53

元旦后有四天或者更多天所在周

7

星期一

1-53

元旦后的第一个星期一所在周

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
select week('2018-01-01');
 week
------
    0
(1 row)

select week('2018-01-01', 0);
 week
------
    0
(1 row)

select week('2020-12-31', 1);
 week
------
   53
(1 row)

select week('2020-12-31', 5);
 week
------
   52
(1 row)

weekday(date)

描述:返回给定日期date对应的星期索引,星期一作为一周的开始日。

取值范围:0~6

返回值类型:integer

示例:

1
2
3
4
5
select weekday('2020-11-06');
 weekday
---------
       4
(1 row)

weekofyear(date)

描述:返回给定日期date所在周在本年中对应的周数,取值范围为[1, 53],等价于week(date, 3)。

返回值类型:integer

示例:

1
2
3
4
5
select weekofyear('2020-12-30');
 weekofyear
------------
         53
(1 row)

year(date)

描述:获取时间日期date所处的年份

返回值类型:integer

示例:

1
2
3
4
5
select year('2020-11-13');
 year
------
 2020
(1 row)

yearweek(date[, mode])

描述:返回给定日期date在本年中对应的年份和周数,周数范围为[1, 53]。

返回值类型:integer

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
select yearweek('2019-12-31');
 yearweek
----------
   201952
(1 row)

select yearweek('2019-1-1');
 yearweek
----------
   201852
(1 row)