CREATE TABLE user ( id bigint(20) NOT NULL AUTO_INCREMENT, name varchar(20) CHARACTER SET gbk NOT NULL, sex tinyint(1) DEFAULT '1', state smallint(2) DEFAULT '1', createtime datetime NOT NULL, updatetime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
三、日期最大值范圍的問題 日期最大范圍的問題不是絕對的,很多人制定一個說不能查過20XX年,這是扯蛋,根本沒這回事。日期的范圍等問題與MySQL的運行模式有關。當然這個范圍很寬廣,足夠祖宗十八代用了,不用擔心這問題了。 相反,要注意的問題是,編程語言對日期范圍的限制,不同的語言,有不同的限制,這裡不做討論了。 四、日期格式轉換 1、字符串轉日期 select STR_TO_DATE('2010-03-03 16:41:16', '%Y-%m-%d %H:%i:%s') 2、日期轉字符串 select DATE_FORMAT('2010-03-03 16:41:16', '%Y-%m-%d %H:%i:%s') 五、日期的中年月日時分秒星期月份等獲取方法
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;方式很多,這裡簡單列舉一二。 六、日期的算術運算 相關的函數很多很多,用法也很簡單,一看就會,建議查看MySQL參考手冊。
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY); -> '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'七、日期的大小比較 拿著日當數字,拿著字符串當日期,呵呵,很簡單的。
and update_time > '2010-03-02 16:48:41' and update_time <= '2010-03-03 16:51:58'