操作VARCHAR字符串和更新列(伪日期)

时间:2013-03-22 16:14:49

标签: mysql sql date sql-update varchar

很长一段时间,我的客户想要将日期时间字段更改为varchar字段,经过数小时告诉他们为什么不应该这样做,我终于放弃了。

我的问题是现在转换为VARCHAR的日期是yyyy-mm-dd,我需要将它们翻转到mm-dd-yyyy我可以使用带有foreach()循环和{{1}的PHP来执行此操作但有没有办法用sql查询呢?

3 个答案:

答案 0 :(得分:2)

您可以使用DATE_FORMAT

UPDATE your_table SET your_varchar = DATE_FORMAT(your_varchar ,'%m-%d-%Y')

有关更多信息,请参阅MySQL文档:DATE_FORMAT

答案 1 :(得分:0)

SELECT 
    SUBSTRING(date_to_change,9,2) + '-' + SUBSTRING(date_to_change,6,2) + '-' + SUBSTRING(date_to_change,1,4)
...

看看你是否正在寻找。

道歉 - 忘了添加其余内容。

UPDATE 
    table_to_update 
SET 
    date_to_change = SUBSTRING(date_to_change,9,2) + '-' + SUBSTRING(date_to_change,6,2) + '-' + SUBSTRING(date_to_change,1,4)

答案 2 :(得分:0)

您可以使用:

SELECT CAST(DATE_FORMAT(dateColumn, '%m-%d-%Y') AS CHAR(10));