Миграция функций Даты и недели Улья Из Запроса Greenplum

#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:

Если вы хотите, чтобы

  1. найдите начало недели, а затем используйте select next_day(date_sub(current_date, 7), 'MON')
  2. добавьте 1 неделю к дате, а затем используйте select current_date interval 7 day
  3. преобразуйте дату в строку, а затем используйте 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 и точной ошибкой.