我正在嘗試將 GP 轉換為 Hive 遷移邏輯,但下面的陳述句在執行查詢時給出了錯誤的輸出:
select (date_trunc('Month','2022-01-04'::date ) - interval '0 Month 1 day')::date
GP的輸出:2021-12-31
如果我們轉換 Hive 查詢,類似
select cast(date_add(add_months(trunc(cast('2022-01-04' as date),'MM'),-0),1) as date)
如果 Hive 查詢輸出:2022-01-02
我可以看到日期的差異。請幫我。
謝謝
uj5u.com熱心網友回復:
您在第一個查詢中減去間隔 0 個月和 1 天,在第二個查詢中您添加 0 個月(這沒有意義)并添加 1 天(不減去)。如果您想在 Hive 中執行與 GP 查詢相同的操作,只需減去 1 天,它的作業方式相同:
select date(date_add(trunc('2022-01-04','MM') ,-1)) --returns 2021-12-31
或同樣使用interval:
select date(date(trunc('2022-01-04','MM')) - interval '1' day)
或者另一種可能的選擇:
select date(add_months(last_day('2022-01-04') ,-1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411012.html
標籤:
上一篇:用日歷減去天數不會減少年份?
