admin管理员组

文章数量:1530059

时间戳是数据库常用的存放日期的形式之一,表示从 UTC 时间’1970-01-01 00:00:00’开始到现在的秒数,与常规时间格式如 ‘2020-09-01 00:00:00’可以相互转换。时间戳分为10位的时间戳和13位的时间戳,10位就是存放的秒数,13位就是存放的毫秒数。
(1)unix_timestamp

a. 语法:unix_timestamp()
   返回值:返回当前时间戳
   举例:hive>select unix_timestamp();
         >1598951117
         
b. 语法:unix_timestamp(string data)
   返回值:返回data对应的时间戳,data的格式必须为yyyy-MM-dd HH:mm:ss
   举例:hive>select unix_timestamp('2020-09-01 09:00:00');
         >1598922000

c. 语法:unix_timestamp(string date, string format)
   返回值:返回data对应的时间戳,date 格式由 format 指定。

(2)from_unixtime

语法:from_unixtime(int/bigint timestamp)
返回值:返回timestamp对应的日期,格式为yyyy-MM-dd HH:mm:ss
 举例:hive>select from_unixtime(1598951117);
         >2020-09-01 17:05:17

对于13位的时间戳,转换前需要除以1000

举例:hive>select from_unixtime(cast(1598951117034/1000 as bigint),'yyyy-MM-dd HH:mm:ss')
         >2020-09-01 17:05:17
举例:hive>select from_unixtime(ceil(1598951117034/1000),'yyyy-MM-dd HH:mm:ss')
         >2020-09-01 17:05:17

本文标签: 函数时间Hiveunixtimestampfromunixtime