大数据Spark Sql中日期转换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 日期转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mysql出生日期转换为年龄并分组统计人数的方法示例

    查询数据库 SELECT * FROM `student` 查询结果 id name birthday 1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 4 马六 2003-10-01 转换为年龄的查询语句,使用函数TIMESTAMPDIFF SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student` 查询结果 d na

  • MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)

    1. 时间差函数(TIMESTAMPDIFF.DATEDIFF) 需要用MySQL计算时间差,使用TIMESTAMPDIFF.DATEDIFF,记录一下实验结果 --0 select datediff(now(), now()); --2 select datediff('2015-04-22 23:59:00', '2015-04-20 00:00:00'); --2 select datediff('2015-04-22 00:00:00', '2015-04-20 23:59:00');

  • 解析SQL Server中SQL日期转换出错的原因

    开发人员有时候使用类似下面SQL将字符串转换为日期时间类型,乍一看,这样的SQL的写法是没有什么问题的.但是这样的SQL其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况进行一个简单概括. SELECT CONVERT(DATETIME, '2020-01-13 6:46:42'); 如果你将连接数据库的登录名的默认语言修改为Aribc,然后去执行上面SQL语句,就会遇到错误,为什么呢? 为什么上面SQL的日期转换出错了呢?其实是因为登录名修改默认语言后,会话对应的date_f

  • MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01-16') SELECT DAYOFWEEK('2016-01-16 00:00:00') -> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7) 2.WEEKDAY(date) SELECT WEEKDAY('2016-01-16') SELECT WEEKDAY('2016-01

  • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式

    如果在asp中我们可以用year(date())这样的格式在sql语句中,不知道这样的效率怎么样不过是个方法 复制代码 代码如下: select substring(convert(char,registdate,120),1,10) as registdate from tbuser

  • 大数据Spark Sql中日期转换FROM_UNIXTIME和UNIX_TIMESTAMP的使用

    目录 UNIX_TIMESTAMP FROM_UNIXTIME 众所周知,数字整型用来大小比较和计算运算要比字符型快的多,因此部分业务需要把时间字段转化为整型方便业务的快速计算和到达,这个整形数字是选定的日期距UTC 时间 '1970-01-01 00:00:00' 开始的秒数,目前为十位,比如常用来举例的1234567890,但毕竟数字不方便观察,后续还需要把这些时间数字转换为真正的时间字段 这里就需要两个函数来进行转换UNIX_TIMESTAMP和FROM_UNIXTIME 咱们一一介绍 U

  • javascript中日期转换成时间戳的小例子

    复制代码 代码如下: /*** 日期转化成时间戳* 日期格式 2011-02-02 21:12:13* time_str:日期段 2011-02-02* fix_time:时间段 21:12:13*/function strtotime(time_str, fix_time) {var time = (new Date()).getTime(); if(time_str) {//有日期段var str = time_str.split('-');if (3 === str.length) {va

  • Oracle中日期的使用方法实例

    目录 前言 1 日期等于\大于\小于 2 日期差值计算 1 直接将两个时间来相减 2 时间和日期的两层转换 3 使用trunc函数 总结 前言 在使用sql函数时,因项目数据库不同,导致sql中日期的使用方法大不相同, 一些常见的日期计算,都有不同的应用,故整理记录一下Oracle的日期用法.以user表为例 CREATE TABLE "SCOTT"."user" ( "id" NUMBER(20,0) NOT NULL ENABLE, &quo

  • 如何使用IDEA开发Spark SQL程序(一文搞懂)

    目录 前言 Spark SQL是什么 1.使用IDEA开发Spark SQL 1.1.指定列名添加Schema 1.2.通过StructType指定Schema 1.3.反射推断Schema–掌握 1.4.花式查询 1.5. 相互转化 1.6.Spark SQL完成WordCount(案例) 1.6.1.SQL风格 1.6.2.DQL风格 前言 大家好,我是DJ丶小哪吒,我又来跟你们分享知识了.对软件开发有着浓厚的兴趣.喜欢与人分享知识.做博客的目的就是为了能与 他 人知识共享.由于水平有限.博

  • Spark SQL常见4种数据源详解

    通用load/write方法 手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作.一个DataFrame可以进行RDDs方式的操作,也可以被注册为临时表.把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询. Spark SQL的默认数据源为Parquet格式.数据源为Parquet文件时,Spark SQL可以方便的执行所有的操作. 修改配置项spark.sql.sources.default,可修改默认数据源格式. scala> val

  • MySql 快速插入千万级大数据的方法示例

    在数据分析领域,数据库是我们的好帮手.不仅可以接受我们的查询时间,还可以在这基础上做进一步分析.所以,我们必然要在数据库插入数据.在实际应用中,我们经常遇到千万级,甚至更大的数据量.如果没有一个快速的插入方法,则会事倍功半,花费大量的时间. 在参加阿里的天池大数据算法竞赛中(流行音乐趋势预测),我遇到了这样的问题,在没有优化数据库查询及插入之前,我花了不少冤枉时间,没有优化之前,1500万条数据,光插入操作就花费了不可思议的12个小时以上(使用最基本的逐条插入).这也促使我思考怎样优化数据库插入

  • 一文学会Hadoop与Spark等大数据框架知识

    目录 一个实际的需求场景:日志分析 Hadoop Hadoop的生态坏境 Spark Spark整体架构 Spark核心概念 Spark的核心组件 海量数据的存储问题很早就已经出现了,一些行业或者部门因为历史的积累,数据量也达到了一定的级别.很早以前,当一台电脑无法存储这么庞大的数据时,采用的解决方案是使用NFS(网络文件系统)将数据分开存储.但是这种方法无法充分利用多台计算机同时进行分析数据. 一个实际的需求场景:日志分析 日志分析是对日志中的每一个用户的流量进行汇总求和.对于一个日志文件,如

  • 解读sql中timestamp和datetime之间的转换

    目录 sql中timestamp和datetime的转换 示例如下 1.现在数据库的datetime时间 2.将现在数据库的datetime时间转换为timestamp格式 3.将转换成的timestamp格式的数据重新转回到datetime格式 附表 总结 sql中timestamp和datetime的转换 互相转换说明: 将datetime转换为timestamp格式,使用UNIX_TIMESTAMP()函数: 将timestamp转换为datetime格式,使用FROM_UNIXTIME(

  • Spark SQL数据加载和保存实例讲解

    一.前置知识详解 Spark SQL重要是操作DataFrame,DataFrame本身提供了save和load的操作, Load:可以创建DataFrame, Save:把DataFrame中的数据保存到文件或者说与具体的格式来指明我们要读取的文件的类型以及与具体的格式来指出我们要输出的文件是什么类型. 二.Spark SQL读写数据代码实战 import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD;

随机推荐