介绍
date_format()
是 Hive
中用于将日期时间值格式化为字符串的函数。该函数可以将日期时间值转换为目标格式的字符串。
SELECT date_format(date, format) FROM table;
其中,date
是要格式化的日期值或者 Hive 字符串类型的日期格式。format
是格式化字符串,用于指定日期时间的显示格式。常用格式如下:
-
%Y
年份,4 位数字。(例如:1999) -
%y
年份,2 位数字。(例如:99) -
%m
月份,2 位数字。(例如:01~12) -
%d
日期,2 位数字。(例如:01~31) -
%H
小时,24 小时制,2 位数字。(例如:00~23) -
%h
小时,12 小时制,2 位数字。(例如:01~12) -
%i
分钟,2 位数字。(例如:00~59) -
%s
秒,2 位数字。(例如:00~59) -
%p
AM 或 PM。
例如,将日期 2022-01-01 10:00:00
格式化为 yyyy/MM/dd HH:mm:ss
的字符串:
SELECT date_format('2022-01-01 10:00:00', 'yyyy/MM/dd HH:mm:ss');
需要注意点是
在使用 date_format()
函数时,需要注意以下几点:
-
date
参数必须是日期时间类型或可以转换为日期时间类型的字符串类型。否则会返回NULL
。 -
format
参数必须是有效的日期时间格式化字符串,否则会返回NULL
。 - 在
format
参数中使用大小写字母的区别要注意,例如%Y
表示以四位数年份表示,而%y
表示以两位数年份表示。 - 在使用
date_format()
函数时,可能会遇到与选定的日期时间格式不匹配的问题,导致无法正确格式化日期时间值,因此需要在选择日期时间格式时要谨慎。 - 在某些版本的 Hive 中,
date_format()
函数支持更多的日期时间格式化选项,如%u
表示周中的星期几(1-7),%w
表示周中的天数(0-6),%j
表示一年中的第几天等。因此,在使用date_format()
函数时,需要根据具体版本的支持情况选择合适的日期时间格式化选项。
总之,在使用 date_format()
函数时,需要根据实际需求选择适当的日期时间格式化选项,并注意格式化字符串的大小写、拼写和符号匹配等细节。
举个例子
SELECT date_format('2022-09-15 22:30:00', 'MMM d, yyyy'' at'' h:mm a z');
Sep 15, 2022 at 10:30 PM UTC
-
%b
:月份的缩写,例如:Sep
。 -
%d
:日期,2 位数字,例如:15
。 -
%Y
:年份,4 位数字,例如:2022
。 -
'' at ''
:单引号字符串,用于在结果字符串中显示at
,例如:at
。 -
%h
:12 小时制的小时数,例如:10
。 -
%mm
:分钟,2 位数字,例如:30
。 -
%pm
:大写的AM
或PM
,例如:PM
。 -
%z
:时区,例如:UTC
。
需要注意的是,在该例子中使用了两对单引号 ''
对 at
进行了转义,防止其被误认为是格式化字符串的开头或结尾。
该格式化字符串的输出结果显示了时间值以缩写月份、日期、年份、小时(12 小时制)、分钟、大写 AM
或 PM
和时区表示。