長期以來,我的一個客戶想要將日期時間字段更改爲varchar字段,在告訴他們爲什麼不應該這樣做後,我終於給英寸處理VARCHAR字符串和更新列(pseudo-date)
我的問題是現在轉換成VARCHAR的日期是yyyy-mm-dd
,我需要翻轉過來,他們進入mm-dd-yyyy
我可以用PHP與foreach()
循環做到這一點,一個list()=explode()
但有沒有辦法用做SQL查詢?
長期以來,我的一個客戶想要將日期時間字段更改爲varchar字段,在告訴他們爲什麼不應該這樣做後,我終於給英寸處理VARCHAR字符串和更新列(pseudo-date)
我的問題是現在轉換成VARCHAR的日期是yyyy-mm-dd
,我需要翻轉過來,他們進入mm-dd-yyyy
我可以用PHP與foreach()
循環做到這一點,一個list()=explode()
但有沒有辦法用做SQL查詢?
您可以使用DATE_FORMAT
:
UPDATE your_table SET your_varchar = DATE_FORMAT(your_varchar ,'%m-%d-%Y')
欲瞭解更多信息,請參閱MySQL文檔:DATE_FORMAT
好這完全按照預期工作。因此,MySQL可以將它理解爲一個日期而不被設置爲日期?我必須閱讀DATE_FORMAT。另外,它不會讓我選擇另一個5分鐘的答案:p – 2013-03-22 16:25:04
準確地說,MySQL將字符串作爲任何日期/時間函數的日期。 – 2013-03-22 17:08:17
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)
您可以使用此:
SELECT CAST(DATE_FORMAT(dateColumn, '%m-%d-%Y') AS CHAR(10));
使用字符串函數 – Melanie 2013-03-22 16:18:44