如何从工作日中选择记录?

时间:2017-08-21 05:07:43

标签: hive qubole

我有一个包含每日记录的hive表。我想从工作日中选择记录。所以我使用下面的蜂巢查询来做到这一点。我使用QUBOLE API来执行此操作。

SELECT      hour(pickup_time),
            COUNT(passengerid)
FROM        home_pickup
WHERE       CAST(date_format(pickup_time, 'u') as INT) NOT IN (6,7)
GROUP BY    hour(pickup_time) 

然而,当我运行此代码时,它出现了Bellow错误。

  

SemanticException [错误10011]:第4:12行无效的函数' date_format'

不是Qbole对date_format函数的支持吗?有没有其他方法可以选择工作日?

1 个答案:

答案 0 :(得分:1)

使用unix_timestamp(string date, string pattern)将指定日期格式转换为1970-01-01传递的秒数。然后使用from_unixtime()转换为给定格式:

演示:

hive> select cast(from_unixtime(unix_timestamp('2017-08-21 10:55:00'),'u') as int);
OK
1

您可以为非标准格式指定unix_timestamp的日期模式。 请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions