обновить дату в оракуле - PullRequest
2 голосов
/ 18 февраля 2012

Мне нужно преобразовать формат даты в ORACLE SQL Developer

Текущий формат: гггг / мм / дд-чч: мм: сс: ссс, и мне нужно преобразовать его в гггг-мм-дд чч:mm: ss CST Я действительно не знаю SQL, но провел некоторое исследование.Вот команда, с которой я консультировался у других людей на форуме.но это бросает мне нераспознанную ошибку команды.имя таблицы B, а имя столбца First

UPDATAE B
set First = concat(to_char(substring(FIRST,1,4) + '-' + substring(FIRST, 6, 2) + '-' + substring(FIRST, 9, 2) + ' ' + substring(FIRST, 12, 8));

Может ли кто-нибудь здесь помочь мне с этим?заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

«Нераспознанная команда» - это просто неправильное написание UPDATE:

UPDATAE B

// Should be
UPDATE B

Чтобы убедиться, что результат соответствует ожидаемому до выполнения оператора UPDATE, используйте SELECT:

SELECT 
  to_char(substr(FIRST,1,4) || '-' || substr(FIRST, 6, 2) || '-' || substr(FIRST, 9, 2) || ' ' || substr(FIRST, 12, 8)) AS Test
FROM B
0 голосов
/ 18 февраля 2012

Хм ... Я либо упускаю что-то чрезвычайно очевидное, либо все остальные ...

Вы хотите встречаться с операциями?Используйте to_date и to_char.Я собираюсь предположить, что это ss:sss означает, секунды, затем доли секунды.Ваша дата выглядит как строка, поэтому нам нужно преобразовать ее дважды:

update b
   set first =  to_char( to_date( my_date, 'yyyy/mm/dd-hh:mi:ss:ff3')
                        ,'yyyy-mm-dd hh:mi:ss' )

Как правило, при использовании дат гораздо проще использовать только функции даты и предоставленные форматы .

В качестве дополнительной точки, если у вас есть дата, сохраните ее как дату.Позже это спасет мир от беспокойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...