赞
踩
Hive函数 date_format 使用示例总结
Hive函数 date_format 用于将日期或时间戳格式化为指定的输出格式。假设要对时间 2024-03-18 18:18:18.008
进行格式化,以下是一些常见的时间提取格式,这些格式可以在 date_format 函数中使用:
SELECT date_format('2024-03-18 18:18:18.008', 'yyyy');
输出:
2024
SELECT date_format('2024-03-18 18:18:18.008', 'yy');
输出:
24
SELECT date_format('2024-03-18 18:18:18.008', 'MM');
输出:
03
SELECT date_format('2024-03-18 18:18:18.008', 'M');
输出:
3
SELECT date_format('2024-03-18 18:18:18.008', 'dd');
输出:
18
SELECT date_format('2024-03-18 18:18:18.008', 'd');
输出:
18
SELECT date_format('2024-03-18 18:18:18.008', 'HH');
输出:
18
SELECT date_format('2024-03-18 18:18:18.008', 'hh');
输出:
6
SELECT date_format('2024-03-18 18:18:18.008', 'mm');
输出:
18
SELECT date_format('2024-03-18 18:18:18.008', 'ss');
输出:
18
SELECT date_format('2024-03-18 18:18:18.008', 'S');
输出:
8
SELECT date_format('2024-03-18 18:18:18.008', 'a');
输出:
下午
SELECT date_format('2024-03-18 18:18:18.008', 'E');
输出:
星期一
SELECT date_format('2024-03-18 18:18:18.008', 'w');
输出:
12
SELECT date_format('2024-03-18 18:18:18.008', 'W');
输出:
4
SELECT date_format('2024-03-18 18:18:18.008', 'D');
输出:
78
SELECT date_format('2024-03-18 18:18:18.008', 'F');
输出:
3
SELECT date_format('2024-03-18 18:18:18.008', 'u');
输出:
1
以上SQL示例是根据不同的时间提取格式,对给定的时间 2024-03-18 18:18:18.008 进行格式化处理。
Hive 函数 date_format
部分源码如下:
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { ... try { formatter = new SimpleDateFormat(fmtStr); formatter.setTimeZone(TimeZone.getTimeZone("UTC")); } catch (IllegalArgumentException e) { // ignore } ... } @Override public Object evaluate(DeferredObject[] arguments) throws HiveException { ... String res = formatter.format(date); if (res == null) { return null; } output.set(res); return output; }
通过查询date_format
源码得知,在初始化阶段,函数会尝试使用给定的格式字符串( fmtStr )创建一个 SimpleDateFormat
对象,并将其时区设置为UTC。在 evaluate
方法中,函数通过 SimpleDateFormat
对象对输入的日期进行格式化处理,生成格式化后的字符串。如果格式化后的结果为null,则返回null,否则将结果设置到输出对象中并返回。
总之,Hive 函数
date_format
能够支持的时间格式化取决于SimpleDateFormat
这个类能够支持的类型。我们可以通过查阅SimpleDateFormat
类的官方文档来获取更详细的信息:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。