2013-03-22 16 views
0

長期以來,我的一個客戶想要將日期時間字段更改爲varchar字段,在告訴他們爲什麼不應該這樣做後,我終於給英寸處理VARCHAR字符串和更新列(pseudo-date)

我的問題是現在轉換成VARCHAR的日期是yyyy-mm-dd,我需要翻轉過來,他們進入mm-dd-yyyy我可以用PHP與foreach()循環做到這一點,一個list()=explode()但有沒有辦法用做SQL查詢?

+0

使用字符串函數 – Melanie 2013-03-22 16:18:44

回答

2

您可以使用DATE_FORMAT

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

欲瞭解更多信息,請參閱MySQL文檔:DATE_FORMAT

+0

好這完全按照預期工作。因此,MySQL可以將它理解爲一個日期而不被設置爲日期?我必須閱讀DATE_FORMAT。另外,它不會讓我選擇另一個5分鐘的答案:p – 2013-03-22 16:25:04

+1

準確地說,MySQL將字符串作爲任何日期/時間函數的日期。 – 2013-03-22 17:08:17

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) 
0

您可以使用此:

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