我有一個DATE列,日期格式爲2012-02-25。我需要更新到12-02-25,但不知道如何去解決它?在mySql中更新日期
謝謝!
編輯:審查所有答案後,似乎我還不夠清楚。我不想改變我的類型,我也不希望玩弄輸出。我想將現有日期列從2012年更新到12年。如果有任何內容,它應該是UPDATE查詢,我只是不確定如何編寫它。感謝迄今爲止的所有評論。編輯2:看來我的問題沒有意義,我不知道你不能將DATE存儲爲xx-xx-xx。無論如何謝謝!
我有一個DATE列,日期格式爲2012-02-25。我需要更新到12-02-25,但不知道如何去解決它?在mySql中更新日期
謝謝!
編輯:審查所有答案後,似乎我還不夠清楚。我不想改變我的類型,我也不希望玩弄輸出。我想將現有日期列從2012年更新到12年。如果有任何內容,它應該是UPDATE查詢,我只是不確定如何編寫它。感謝迄今爲止的所有評論。編輯2:看來我的問題沒有意義,我不知道你不能將DATE存儲爲xx-xx-xx。無論如何謝謝!
您應該使用日期時間類型。否則,您將遇到一些問題(排序,與日期等有關)
您可以將日期的顯示更改爲輸出。
不幸的是,改變輸出結果目前不是一種選擇,如果可能的話,它確實需要db分支。日期時間也行不通,我根本不想要這個時間;) – Sherif
@Sherif:這個列是如何定義的?我*希望*它是「日期時間」或「日期」(不是「varchar」!)儘管如此,你總是可以使用mySQL [「DATE_FORMAT()」](http://davidwalsh.name/format-date-mysql-date_format)在日期時間和任何任意字符串格式之間進行相互轉換。 – paulsm4
如果你想你可以做到這一點。但它不合邏輯。首先你應該使用varchar格式。您可以將日期存儲爲yy-mm-dd。 (在php $ date = date(「y-m-d」))但我指出。你會遇到一些問題。 – 2012-08-24 05:53:00
從我MySQL Reference:因爲世紀是未知 與
兩位數年份日期值不明確。這些值必須解釋爲四位數字形式,因爲MySQL在內部使用四位數字存儲多年。
對於DATETIME,DATE和TIMESTAMP類型,MySQL的解釋使用這些規則不明確年份值指定的日期 :
範圍00-69的年值轉換爲2000年至2069年。
70-99範圍內的年份值轉換爲1970-1999。
對於YEAR,規則是相同的,與此異常:數值00 插入YEAR(4)的結果0000,而不是2000要指定 零YEAR(4),並將它被解釋爲2000 ,請將其指定爲 字符串'0'或'00'。
請記住,這些規則只是啓發式方法,可以提供合理的 猜測您的數據值的含義。如果MySQL 使用的規則不生成您所需的值,則必須提供含有四位數年份值的明確輸入 。
謝謝,我讀過這些,這就是爲什麼我可以使用DATE;所用的日期是從2012年開始的,我相當確定,當我們到達2069年時,這個網站將會長久死去。我不會很快遇到模棱兩可的問題。 – Sherif
@Sherif:好的,如果你已經閱讀過,你可能會理解MySQL使用四位數存儲多年的事實。所以如果你仍然想保持你的'日期'列完好無損,我認爲你可能需要使用四位數字格式。但是,您可能會創建一個['Year(2)'列](http://dev.mysql.com/doc/refman/5.1/en/year.html)來排序「hackishly」store – Sujay
我可能當時被誤解了;你不能把它存儲爲12?難道它不會簡單地在內部解釋爲2012? – Sherif
使用MySQL date_format函數來顯示它您需要:
SELECT DATE_FORMAT(youdatecolumn, '%y-%m-%d') FROM yourtable
示例代碼try代碼
public class MyDateParser {
public static void main(String args[]) throws ParseException {
String s = "2011-03-27";// or 3/27/2011
SimpleDateFormat dateFormatter = s.length() == 9 ? new SimpleDateFormat(
"yyyy-MM-dd") : new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
Date date = dateFormatter.parse(s);
calendar.setTime(date);
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yy-MM-dd");
String strss = simpleDateFormat2.format(date);
System.out.println(strss);
}
}
你想完成什麼?爲什麼你需要12而不是2012? – rmarimon
這些日期是在JavaScript中提取的,我完全沒有理解,因此我想改變數據庫本身。謝謝! – Sherif
你最好改變'SELECT'將數據轉換爲javascript並使用'DATE_FORMAT()'函數。 – rmarimon