一般建表時(shí)候,創(chuàng)建時(shí)間用datetime,更新時(shí)間用timestamp。這是非常重要的。
————————————————————————- MySQL5的日期類(lèi)型有三種:DATETIME、DATE和TIMESTAMP,除了DATE用來(lái)表示一個(gè)不帶時(shí)分秒的是日期,另外兩個(gè)都帶時(shí)分秒。TIMESTAMP還可以精確到毫秒。 其次還有個(gè)共性,就是他們的格式“不嚴(yán)格”,很自由,一般你認(rèn)為對(duì)的格式都可以正確插入到數(shù)據(jù)庫(kù)中。 這里主要解決帶時(shí)分秒日期的一些常見(jiàn)問(wèn)題。 一、IMESTAMP
1、TIMESTAMP列必須有默認(rèn)值,默認(rèn)值可以為“0000-00-00 00:00:00”,但不能為null。 二、DATETIME
1、DATETIME列可以設(shè)置為多個(gè),默認(rèn)可為null,可以手動(dòng)設(shè)置其值。
一般建表時(shí)候,創(chuàng)建時(shí)間用datetime,更新時(shí)間用timestamp。 三、日期最大值范圍的問(wèn)題 日期最大范圍的問(wèn)題不是絕對(duì)的,很多人制定一個(gè)說(shuō)不能查過(guò)20XX年,這是扯蛋,根本沒(méi)這回事。日期的范圍等問(wèn)題與MySQL的運(yùn)行模式有關(guān)。當(dāng)然這個(gè)范圍很寬廣,足夠祖宗十八代用了,不用擔(dān)心這問(wèn)題了。 相反,要注意的問(wèn)題是,編程語(yǔ)言對(duì)日期范圍的限制,不同的語(yǔ)言,有不同的限制,這里不做討論了。 四、日期格式轉(zhuǎn)換
1、字符串轉(zhuǎn)日期
2、日期轉(zhuǎn)字符串 五、日期的中年月日時(shí)分秒星期月份等獲取方法 select TIMESTAMP(‘2010-03-03 16:41:16′); select DATE(‘2010-03-03 16:41:16′); select YEAR(‘2010-03-03 16:41:16′); select MONTH(‘2010-03-03 16:41:16′); select DAY(‘2010-03-03 16:41:16′); select TIME(‘2010-03-03 16:41:16′); select CURTIME(); select CURDATE(); select CURRENT_DATE; select CURRENT_TIME; select CURRENT_TIMESTAMP; 方式很多,這里簡(jiǎn)單列舉一二。 六、日期的算術(shù)運(yùn)算
相關(guān)的函數(shù)很多很多,用法也很簡(jiǎn)單,一看就會(huì),建議查看MySQL參考手冊(cè)。 -> ‘1999-01-02′ mysql> SELECT DATE_ADD(‘1999-01-01′, INTERVAL 1 HOUR); -> ‘1999-01-01 01:00:00′ mysql> SELECT DATE_ADD(‘1998-01-30′, INTERVAL 1 MONTH); -> ‘1998-02-28′ 七、日期的大小比較
拿著日當(dāng)數(shù)字,拿著字符串當(dāng)日期,呵呵,很簡(jiǎn)單的。 |
|
來(lái)自: 館天下ccf > 《sql數(shù)據(jù)庫(kù)》