Пользовательский формат даты в Oracle

#oracle #timestamp #oracle12c

#Oracle #временная метка #oracle12c

Вопрос:

У меня есть даты в столбце VARCHAR в таблице с этим форматом.

  1. «2019-08-13 00:00:00»

И немногие из них в этом формате

  1. «Ср. 20 февраля 2019 г. 15:00:58 GMT 0100»

Я хочу, чтобы все мои поля были в (2).

У меня не может быть типа даты для этого столбца. Пожалуйста, помогите мне в преобразовании

Комментарии:

1. Привет, добро пожаловать в stack overflow! Попробуйте написать UPDATE ... запрос. Мы можем помочь вам, если у вас возникнут конкретные вопросы.

Ответ №1:

Вы говорите, что этот столбец не может быть a date . Но если вы храните даты (или, в данном случае, временные метки с часовыми поясами), вы действительно, действительно хотите, чтобы этот столбец был правильным типом данных. В противном случае вы будете создавать себе проблемы, когда кто-то вставит строку в неправильном формате.

Предполагая, что все строки длиной 19 находятся в первом формате, все они представляют действительные даты, и вы хотите, чтобы все они заканчивались в часовом поясе GMT 1, что-то вроде

 select case when length(column_name) = 19
            then to_char( to_date( column_name, 'yyyy-mm-dd hh24:mi:ss' ),
                          'Dy Mon DD YYYY HH24:MI:SS' ) || ' GMT 0100'
            else column_name
         end
  from your_table