Как преобразовать это в правильный формат даты?

Итак, в настоящее время у меня есть дата в виде varchar (dddyyyy, ddyyyy или dyyyy), и мне нужно преобразовать ее в дату (тем не менее, с округлением до ближайшего слабого). Проблема в том, что когда я выполняю то, что придумал до сих пор (как показано ниже), я получаю даты в формате «00: 00: 00 01/23/2017». Я что-то упустил? Заранее спасибо!

SELECT distinct trunc(to_date(lpad(date, 7, 0), 'DDDYYYY'), 'iw') as week
  FROM TABLE;

Вы ошиблись датой или ваш клиент просто отображает ее не так, как вы ожидали? У дат нет внутреннего формата; поэтому вам может потребоваться просто добавить оболочку to_char(), чтобы вернуть ее в виде строки в желаемом формате, но это неясно.

Alex Poole 13.09.2018 20:48

где месяц в вашем формате ??

nikhil sugandh 14.09.2018 09:14

Не могли бы вы показать некоторые входные значения и их ожидаемый результат? Это юлианский формат даты («день года»)?

Hans Kesting 14.09.2018 09:26
2
3
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

если вы хотите округлить его до ближайшей недели, используйте это:

select next_day('14-09-2018', 'SUNDAY') from dual;

Другие вопросы по теме