Hive SQL 中的 second()、minute()、hour() 等是否有等价的毫秒?如果没有,我怎样才能从日期中提取毫秒?

问题描述

我有这样的数据:

2019-12-11 23:38:26.583

我想收到回复

583

即只是毫秒部分。

在 Hive sql 中,有 second()hour()minute()函数可以让您非常轻松地提取这些元素,但我没有看到 {{ 1}}。我试过了,它没有做任何事情,即它不存在。那我如何才能做到这一点?

谢谢:)

解决方法

您可以使用date_format

select date_format('2019-12-11 23:38:26.583','SSS');

请注意,这将返回字符串类型。如果你想要 int 类型,你可以相应地强制转换:

select cast(date_format('2019-12-11 23:38:26.583','SSS') as int);
,

另一种使用 regexp_extract 的方法:

select regexp_extract('2019-12-11 23:38:26.022','\\.(\\d+)$',1);

结果:

022