介绍
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)%pAM 或 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 和时区表示。










