#hive #hiveql #greenplum
Вопрос:
Не могли бы вы , пожалуйста, помочь мне, как указано ниже, я хочу перейти с Greenplum на HiveSQL.пожалуйста, помогите мне.
(date_trunc('week',idate) - INTERVAL '1 week')::DATE date_from
((date_trunc('week',idate) - INTERVAL '1 week')::DATE '6 days'::INTERVAL)::DATE
date_trunc('week',idate)::DATE
примечание: idate-это то, что я должен проанализировать аргумент, например, 2021-02-20
Ответ №1:
Если вы хотите, чтобы
- найдите начало недели, а затем используйте
select next_day(date_sub(current_date, 7), 'MON')
- добавьте 1 неделю к дате, а затем используйте
select current_date interval 7 day
- преобразуйте дату в строку, а затем используйте
select to_date(current_date )
Теперь, судя по вашему коду, вы, похоже, ищете начало недели, а затем вычитаете из этого 1 неделю. (date_trunc('week',idate) - INTERVAL '1 week')
Это можно переписать в hive, как показано ниже.
next_day(date_sub(current_date, 7), 'MON') - interval 7 day
Я предполагал, что понедельник — это твое начало недели. Пожалуйста, проверьте SQL перед его использованием.
Комментарии:
1. я мигрировал,пожалуйста, проверьте : (date_trunc(«неделя»,идентификатор) — ИНТЕРВАЛ «1 неделя»)::ДАТА —>>> приведение(транк(следующий день(дата_суб(текущая дата, 7), «ПН»)) как дата) пожалуйста, помогите мне
2. Это
next_day(date_sub(current_date, 7), 'MON')
даст дату и время. вам не придется бросать его снова. можете ли вы, пожалуйста, поделиться своим sql и точной ошибкой.