大数据SparkSql中日期转换FROM_UNIXTIME和UNIX_TIMESTAMP的使用,
目录
- UNIX_TIMESTAMP
- FROM_UNIXTIME
众所周知,数字整型用来大小比较和计算运算要比字符型快的多,因此部分业务需要把时间字段转化为整型方便业务的快速计算和到达,这个整形数字是选定的日期距UTC 时间 '1970-01-01 00:00:00' 开始的秒数,目前为十位,比如常用来举例的1234567890,但毕竟数字不方便观察,后续还需要把这些时间数字转换为真正的时间字段
这里就需要两个函数来进行转换UNIX_TIMESTAMP和FROM_UNIXTIME
咱们一一介绍
UNIX_TIMESTAMP
是把时间字段转化为整型,需要注意的是有些数据库需要指明时间字段类型
比如MySQL里是可以直接UNIX_TIMESTAMP('20200223'),而某些大数据平台需要UNIX_TIMESTAMP('20200223','yyyyMMdd')

FROM_UNIXTIME
顾名思义就是从整型里把时间整型进行破解成想要的时间格式,使用时可指定格式

这里面经常用到的是UNIX_TIMESTAMP和FROM_UNIXTIME的结合,比如对一个时间字段进行归集计算:把'2020-02-23 01:00:02','2020-02-23 01:02:31','2020-02-23 01:03:22'都归集成'2020-02-23 01:00:00'
select FROM_UNIXTIME(unix_timestamp('20200223')+5*60*floor((substr('2020-02-23
00:01:02',12,2)*60+substr('2020-02-23 00:01:02',15,2))/5)) time1

补充下格式转换:
%a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位
到此这篇关于大数据Spark Sql中日期转换FROM_UNIXTIME和UNIX_TIMESTAMP的使用的文章就介绍到这了,更多相关Spark Sql 日期转换内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!
您可能感兴趣的文章:- Mysql出生日期转换为年龄并分组统计人数的方法示例
- 解析SQL Server中SQL日期转换出错的原因
- MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)
- MySQL日期函数与日期转换格式化函数大全
- sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。