如何替换和更新mysql中varchar将日期yyyy-dd-mm更改为dd-mm-yyyy的表的所有行

问题描述 投票:0回答:3

我有一个varchar列,其日期格式如下yyyy-mm-dd hh:mm:ss.0

transactions_table

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

如何在dd-mm-yyyy中转换以上记录并按如下方式更新相同的记录

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

SQL代码:

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

如何转换该字符串并保存它?

mysql
3个回答
0
投票

具有date_format()功能:

date_format()

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

如果要更新列:

demo

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

结果:

demo

0
投票

只需使用几个内置函数进行更新

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

0
投票

使用substring_index,str_to_date和date_format的组合

UPDATE transactions_table 
    SET transactions_date = DATE_FORMAT(DATE(transaction_date),'%d-%m-%Y');

或者您也可以子字符串和concat ...

date_format(str_to_date(substring_index(transacion_date,' ',1),'%Y-%m-%d'),'%d-%m-%Y')
© www.soinside.com 2019 - 2024. All rights reserved.