Простой способ стандартизировать varchar "даты" в единый формат даты в SQL? - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть таблица в базе данных postgres со столбцом даты varchar, который смешивает MM / DD / YY с форматами данных MM / DD / YYYY. Например:

1/17/89
1/28/2018
12/30/2006
10/1/17

Я бы хотел, чтобы все даты соответствовали формату MM / DD / YYYY:

1/17/1989
1/28/2018
12/30/2006
10/1/2017

Я знаю, что это не лучшая практика для дат находиться в поле varchar, но я не создал эту таблицу и не могу изменить тип данных. Можно ли использовать SQL для внесения такого рода изменений в мою таблицу?

Мне известны подобные вопросы, как этот , но это кажется немного большим, чем я ищу, и я не могу извлечь из него ответ, который подходит для моей проблемы.

Этот вопрос кажется ближе к тому, что я ищу, но, опять же, я не могу реализовать ответ. Как он узнает, в какую таблицу и поле вносить изменения? (Я просто SQL нуб, если вы не можете сказать).

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете попробовать использовать этот код:

SELECT to_char(to_date(my_date,'MM/DD/YY')::TIMESTAMP, 'MM/DD/YYYY') as new_varchar_date FROM my_table;

-- for update the actual values 
UPDATE my_table SET my_date = to_char(to_date(my_date,'MM/DD/YY')::TIMESTAMP, 'MM/DD/YYYY');

Сначала необходимо преобразовать varchar в date, затем в timestamp, а затем снова в varchar.

Результат должен выглядеть следующим образом:

01/17/1989
01/28/2018
12/30/2006
10/01/2017
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...