我有一个查询,其中我需要提取毫秒时间戳来匹配源中的数据。下面是来自sql server(源)的示例数据,列定义为datetime
u\ u日期
2007-10-26 10:07:00.000
2005-05-04 11:12:54.297
2004-05-29 03:56:24.792
目标是hadoop通过impala并定义为timestamp
u\ u日期
2007-10-26 10:07:00
2005-05-04 11:12:54.297000000
2013-05-31 04:07:00
2013-11-01 15:34:00
我正在寻找查询,以获得时间戳显示在源代码毫秒。我已经将我的查询放在下面,但它默认为000毫秒。
从表a中的\u unixtime(unix\u timestamp(u\u date),'yyyy-mm-dd hh:mm:ss.sss')中选择
生成的结果集如下:
2007-10-26 10:07:00.000
2005-05-04 11:12:54.000(毫秒.297默认为000)
2013-05-31 04:07:00.000
2013-11-01 15:34:00.000
请分享您的意见
2条答案
按热度按时间ujv3wf0j1#
如果您的数据库中存储了以毫秒为单位的unix时间戳
像这样的1525245791828
您希望从该字段中删除毫秒,以便可以进行unix时间戳比较。
你可以这样做:
yquaqz182#
要获得高达3位毫秒的格式化时间戳,可以使用
from_timestamp
功能函数
unix_timestamp
在函数运行时以某种方式丢弃毫秒信息from_unixtime
似乎也不能很好地用毫秒来解释unix时间戳(试验日期:
Impala v2.9.0
)