我有一个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%';
如何转换该字符串并保存它?
具有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
只需使用几个内置函数进行更新
| transaction_date |
| ---------------- |
| 29-04-2020 |
| 13-05-2020 |
使用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')