Утро, Название говорит само за себя. Я не могу понять, как получить первый день недели текущего месяца (или предыдущего месяца и т. Д. c.) В HQL.
Таким образом, если сегодняшняя дата должна была быть оценена, она должна возвращать 2/3/2020 в качестве даты, так как 3-й день был первым днем недели в этом месяце.
Я пробовал утверждения случая чтобы оценить первый день месяца, и если это суббота, добавьте 2 дня, воскресенье, добавьте 1, но он не работает, и я получаю следующую ошибку: ОШИБКА: Подготовить ошибку: org. apache .hive. service.cli.HiveSQLException: ошибка при компиляции оператора: FAILED: ParseException строка 1: 452 посторонних входных данных ',' ожидающих KW_THEN около '' строки 1: 626 посторонних входных данных ',' ожидающих KW_THEN около ''
case when date_format(date_add(current_date, 1 - day(current_date)),'u')=6, then to_date(mydate) = date_add(date_add(current_date, 1 - day(current_date)+2))
when date_format(date_add(current_date, 1 - day(current_date)),'u')=7, then to_date(mydate) = date_add(date_add(current_date, 1 - day(current_date)+1))
else to_date(mydate) = date_add(date_add(current_date, 1 - day(current_date))) end
Пожалуйста, помогите!
@ Vamsi Prabhala
Я пытался это сделать, но получаю результат 1. Мне нужна дата возвращения, особенно 2/3/2020 для этого месяца.
case when date_format(date_add(current_date, 1 - day(current_date)),'u')> 5 then
to_date(mydate)= to_date(date_add(date_add(current_date, 1 - day(current_date)),8-cast(date_format(date_add(current_date, 1 - day(current_date)),'u') as int)%8))
else to_date(mydate) = date_add(current_date, 1 - day(current_date)) end