2016-07-26 24 views
0

在我的数据库中,我有大约1k条记录的列。所有记录都有名称字段,其中也覆盖数据。例如。 “名称7/24/2006”。我需要将格式mm/dd/yyyy更改为dd/mm/yyyy。正确的应该是24/07/2006。我试图添加此功能:https://techras.wordpress.com/2011/06/02/regex-replace-for-mysql/并运行更改mysql中现有字段的数据格式

SELECT regex_replace('(\d+)\/(\d+)\/(\d+)$','$2/$1/$3',column_name`) `column_name` 
FROM` `table_name` 

但它不起作用。任何想法如何解决它?

+3

如果你的“日期”格式为“mm/dd/yyyy”,那么它们可能被存储为'varchar',这通常是一个坏主意。取而代之的是,使用一种很好的可接受的格式,比如'yyyy-mm-dd',将这些日期转换为'date','datetime'或'timestamp'。 –

+0

如果你试图修改数据,你需要使用'UPDATE'语句而不是'SELECT',但是这比前面的注释中的建议不重要 - 没有必要在MySQL中将日期作为字符串存储。 – nthall

+1

修复你的数据库,而不是你已经存储的垃圾 – RiggsFolly

回答

1

您应该在MySQL中将日期值存储为真实日期型字段。当你这样做时,你可以用你喜欢的任何“输出格式”查看日期。 (或者几个不同的)。这只是以不同的方式呈现日期:它对存储值本身没有影响。