Как заменить и обновить все строки таблицы, где varchar date yyyy-dd-mm до dd-mm-yyyy в mysql - PullRequest
0 голосов
/ 27 мая 2020

У меня есть столбец varchar с форматом даты следующим образом: гггг-мм-дд чч: мм: сс.0

transaction_table

+-----------------------+
| transaction_date      |
+-----------------------+
| 2020-04-29 19:09:06.0 |
| 2020-05-13 19:09:06.0 |

Как преобразовать вышеуказанные записи в дд-мм-гггг и обновить ту же запись следующим образом

+-----------------------+
| transaction_date      |
+-----------------------+
| 29-04-2020           |
| 13-05-2020           |

SQL код :

 update transactions_table
    set transaction_date ='manipulated data'
    where transaction_date  like '2020%';

Как преобразовать эту строку и сохранить ее?

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Просто обновите с помощью пары встроенных функций

UPDATE transactions_table 
    SET transactions_date = DATE_FORMAT(DATE(transaction_date),'%d-%m-%Y');
0 голосов
/ 27 мая 2020

С функцией date_format():

select date_format(transaction_date, '%d-%m-%Y')
from transactions_table
where transaction_date  like '2020%'

См. Демонстрацию .

Если вы хотите обновить столбец:

update transactions_table
set transaction_date = date_format(transaction_date, '%d-%m-%Y')
where transaction_date  like '2020%';

См. демонстрацию .

Результаты:

| transaction_date |
| ---------------- |
| 29-04-2020       |
| 13-05-2020       |

Нет необходимости преобразовывать значения столбца transaction_date в date, потому что это делается неявно с помощью MySql, поскольку столбец имеет формат yyyy-mm-dd hh:mm:ss.0, который является допустимым форматом даты.

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