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'