У меня есть таблица с двумя столбцами: M_OP_DATE
(типа DATE
) и M__DT_UTC_DATE
(типа TIMESTAMP(3)
).Таблица содержит следующие данные:
+---------------------+---------------------+
| M_OP_DATE | M__DT_UTC_DATE |
+---------------------+---------------------+
| 2018-09-03 00:00:00 | 2018-09-25 20:14:57 |
| 2018-08-31 00:00:00 | 2018-09-25 20:15:05 |
| 2018-08-31 00:00:00 | 2018-09-25 20:15:05 |
+---------------------+---------------------+
Я хотел бы скопировать дату из M_OP_DATE
, не касаясь времени, в поле M__DT_UTC_DATE
.
Я искал наТАК и нашел этот ответ, который выглядел примерно так, как мне нужно было сделать: уже ответил на вопрос .
Поэтому я адаптировал этот ответ к своим данным и придумал что-то вроде этого:
update FXKAUD_H_DBF set M__DT_UTC_DATE = to_date(substr(M_OP_DATE, 0, 9) || ' ' || to_char(M__DT_UTC_DATE, 'HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')
Однако результат не был ожидаемым:
+---------------------+---------------------+
| M_OP_DATE | M__DT_UTC_DATE |
+---------------------+---------------------+
| 2018-08-29 00:00:00 | 2029-08-18 14:47:07 |
+---------------------+---------------------+
Как видите, год - 2029
, а день - 18
.Это в основном поменяло местами две цифры дня с двумя последними цифрами года.
Когда я пытаюсь просто выбрать, что находится внутри substr(M_OP_DATE, 0, 9)
, я вижу, что он показывает мне результат, отличный от того, что я вижу в таблице с простым выбором:
select substr(M_OP_DATE, 0, 9) from FXKAUD_H_DBF
+-----------------------+
| SUBSTR(M_OP_DATE,0,9) |
+-----------------------+
| 29-AUG-18 |
+-----------------------+
.... и когда я пытаюсь отформатировать эту строку до даты в формате YYYY-MM-DD
, возникает проблема:
select to_date(substr(M_OP_DATE, 0, 9), 'YYYY-MM-DD') from FXKAUD_H_DBF
| TO_DATE(SUBSTR(M_OP_DATE,0,9),'YYYY-MM-DD') |
+---------------------------------------------+
| 0029-08-18 00:00:00 |
+---------------------------------------------+
Может кто-нибудь, пожалуйста, проведите меня через хороший подход?Извините, что не предоставил SQLfiddle, но сайт закрыт для меня (позже я проверю, смогу ли я добавить его к вопросу).