2017-07-19 61 views
0

我需要幫助將下面的Hive查詢轉換爲SQL查詢。我需要知道如何將unix時間戳函數轉換爲SQL。配置單元函數轉換爲sql函數

SELECT 
    person_id, supervisor_id, assignment_type, primary_flag, 
    effective_start_date, effective_end_date, 
    MAX(effective_start_date) OVER (PARTITION BY p.person_id) AS max_effective_start_date 
FROM 
    cg1_per_all_assignments_f p 
WHERE 
    to_date(CURRENT_TIMESTAMP) >= COALESCE(to_date(from_unixtime(unix_timestamp(p.EFFECTIVE_START_DATE, 'yyyy-MM-dd'))), DATE_SUB(to_date(from_unixtime(unix_timestamp())), 1)) 
    AND to_date(CURRENT_TIMESTAMP) <= COALESCE(to_date(from_unixtime(unix_timestamp(p.EFFECTIVE_END_DATE, 'yyyy-MM-dd'))), DATE_ADD(to_date(from_unixtime(unix_timestamp())), 1)) 

回答

0

使用Oracle的功能:

Hive => Oracle: 

to_date(CURRENT_TIMESTAMP) => sysdate 
DATE_SUB(to_date(from_unixtime(unix_timestamp())), 1) => sysdate -1 
+0

這種轉換代表MYSQL不是固定的Oracle SQL –

+0

,看到更新的答案 – leftjoin