hive将时间字符串转换为timestamp的几种写法

2024-05-06 15:36

本文主要是介绍hive将时间字符串转换为timestamp的几种写法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写法一

select from_utc_timestamp(from_unixtime(unix_timestamp('2023-8-7 9:38:10 UTC+08:00', 'yyyy-MM-dd HH:mm:ss')), 'UTC');

写法二

select cast(unix_timestamp('2023-8-7 9:38:10 UTC+08:00', 'yyyy-MM-dd HH:mm:ss') as timestamp);

写法三

select cast(trim(split(upper('2023-10-31 4:46:40 UTC+0800')'UTC')[0]) as timestamp); 

这种方式我觉得过于复杂了。

使用到的函数

unix_timestamp

  • 函数签名
bigint unix_timestamp(string datetime, string format)
  • 函数返回值
    bigint类型的时间戳整数

  • 函数入参
    第一个参数是string类型的时间,比如’2024-01-10 20:44:00’。
    第二个参数是string类型的时间格式化的格式,比如’yyyy-MM-dd HH:mm:ss’。

  • 函数使用

-- 将给定时间字符串转换为指定格式的时间戳数字
select unix_timestamp('2023-12-4 4:45:12 UTC+08:00', 'yyyy-MM-dd HH:mm:ss');
-- 输出为1701619200
-- 获取当前时间戳
select unix_timestamp();
  • 注意点
    方法的返回值在spark中可以直接强转为timestamp。
    在hive中不能直接转为timestamp,强转会转为很奇怪的时间。
    如果要在hive中将此函数返回值转为timestamp,则需要使用cast函数转为timestamp。

from_unixtime

  • 函数签名
string from_unixtime(bigint time, string fromat)
  • 函数返回值

  • 函数参数
    bigint类型的时间戳。
    string类型的格式,用于指定函数返回值的格式,可以省略,如果省略,则默认为’yyyy-MM-dd HH:mm:ss’

  • 函数使用

select from_unixtime(1701619200, 'yyyy-MM-dd HH:mm:ss');
-- 省略format
select from_unixtime(1701619200);

测试

可以使用以下字符串作为输入进行测试。
以下各市的字符串经过在beeline客户端进行测试,均能转换为timestamp,且时间精度不会丢失

2023-8-31 15:40:56-- 能够将带有UTC格式的字符串转换为时间戳,然后再转换为timestamp。
-- 但是会有8个小时的误差,上述的方法貌似是直接把UTC字符串给去掉了。                                                                                                                                                          
2023-12-4 4:45:12 UTC+08002023-10-17 3:38:1 UTC+08002023-5-3 13:7:02024-01-10 20:44:00.048

参考

unix_timestamp 时间戳函数用法(hive)

这篇关于hive将时间字符串转换为timestamp的几种写法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964725

相关文章

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统