如何select记录工作日的记录?
How to select records from week days?
我有包含每日记录的配置单元 table。我想 select 从工作日开始记录。所以我使用下面的配置单元查询来做到这一点。我正在使用 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)
然而,当我 运行 这段代码时,它出现了波纹管错误。
SemanticException [Error 10011]: Line 4:12 Invalid function 'date_format'
Qbole不支持date_format功能吗? select 工作日还有其他方法吗?
使用 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
我有包含每日记录的配置单元 table。我想 select 从工作日开始记录。所以我使用下面的配置单元查询来做到这一点。我正在使用 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)
然而,当我 运行 这段代码时,它出现了波纹管错误。
SemanticException [Error 10011]: Line 4:12 Invalid function 'date_format'
Qbole不支持date_format功能吗? select 工作日还有其他方法吗?
使用 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