经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Spark » 查看文章
大数据Spark Sql中日期转换FROM_UNIXTIME和UNIX_TIMESTAMP的使用
来源:jb51  时间:2022/2/28 15:24:54  对本文有异议

众所周知,数字整型用来大小比较和计算运算要比字符型快的多,因此部分业务需要把时间字段转化为整型方便业务的快速计算和到达,这个整形数字是选定的日期距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'

  1. select FROM_UNIXTIME(unix_timestamp('20200223')+5*60*floor((substr('2020-02-23
  2. 00:01:02',12,2)*60+substr('2020-02-23 00:01:02',15,2))/5)) time1

补充下格式转换:

  1. %a 缩写星期名
  2. %b 缩写月名
  3. %c 月,数值
  4. %D 带有英文前缀的月中的天
  5. %d 月的天,数值(00-31)
  6. %e 月的天,数值(0-31)
  7. %f 微秒
  8. %H 小时 (00-23)
  9. %h 小时 (01-12)
  10. %I 小时 (01-12)
  11. %i 分钟,数值(00-59)
  12. %j 年的天 (001-366)
  13. %k 小时 (0-23)
  14. %l 小时 (1-12)
  15. %M 月名
  16. %m 月,数值(00-12)
  17. %p AM PM
  18. %r 时间,12-小时(hh:mm:ss AM PM
  19. %S 秒(00-59)
  20. %s 秒(00-59)
  21. %T 时间, 24-小时 (hh:mm:ss)
  22. %U (00-53) 星期日是一周的第一天
  23. %u (00-53) 星期一是一周的第一天
  24. %V (01-53) 星期日是一周的第一天,与 %X 使用
  25. %v (01-53) 星期一是一周的第一天,与 %x 使用
  26. %W 星期名
  27. %w 周的天 0=星期日, 6=星期六)
  28. %X 年,其中的星期日是周的第一天,4 位,与 %V 使用
  29. %x 年,其中的星期一是周的第一天,4 位,与 %v 使用
  30. %Y 年,4
  31. %y 年,2

到此这篇关于大数据Spark Sql中日期转换FROM_UNIXTIME和UNIX_TIMESTAMP的使用的文章就介绍到这了,更多相关Spark Sql 日期转换内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号