时间函数-hive

复制代码
-- 获取毫秒值
/*unix_timestamp([date[, pattern]])
参数: date 字符串日期
     pattern  date的格式 默认格式(yyyy-MM-dd HH:mm:ss)
     当参数为空时,获取的是当前时间
作用: 将当前或指定的时间转换为1970-01-01以来的秒数
示例:
    将指定日期转换成毫秒值
        select unix_timestamp('20200707145225','yyyyMMddHHmmss')
    获取当前日期的毫秒值
        select unix_timestamp()*/

-- 将毫秒值转换从指定格式的日期
/*from_unixtime(unix_time, format)
参数: unix_time 毫秒值
     format 日期格式 默认格式 (yyyy-MM-dd HH:mm:ss)
作用: 将毫秒值转换从指定格式的日期
示例:
    获取当前日期
        select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
    日期格式转换
        select from_unixtime(unix_timestamp('2020-02-01','yyyy-MM-dd'),'yyyyMMdd')*/

-- 求日期差(days)
/*datediff(date1, date2)
参数: date1、date2
     格式要求 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd' 时间部分会被忽略
作用:求date1和date2相差的天数,date1早于date2时为负数
示例:
    select datediff('2018-09-07','2018-09-05') as days1
    ,(unix_timestamp('2018-09-07','yyyy-MM-dd')  - unix_timestamp('2018-09-05','yyyy-MM-dd') ) / 60 / 60 /24 as days2
  */

-- 求日期和(days)
date_add(start_date, num_days)
作用: 返回start_date之后的num_days日期
示例: SELECT date_add('2009-07-30', 1)
date_sub(start_date, num_days)
作用: 返回start_date之前的num_days日期
示例: SELECT date_sub('2009-07-30', 1)


-- 日期的提取
to_date(expr)
作用: 从日期时间中提取日期
示例: SELECT to_date('2009-07-30 04:17:52')
-- year\month\day\hour\second提取
year(param)
作用: 从日期中提取year
返回值: int-year
SELECT year('2009-07-30')
-- 周的提取
weekofyear(date)
作用: 从日期中获取周
示例: SELECT weekofyear('2008-02-20')
复制代码

 

posted @   学而不思则罔!  阅读(128)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示