datetime 占8个字节 可以显示日期同时显示时间 yyyy-mm-dd hh:mm:ss
显示范围 1000-01-01 00:00:00----9999-12-31 23:59:59
可用格式
2011-01-01 00:01:10
2011/01/01 00+01+10
20110101000110
11/01/01/ 00@01@10
mysql5.5版本之前日期类型无法精确到微秒级别
date 占3个字节 显示日期
显示范围 1000-01-01----9999-12-31
timestamp 占用4个字节 1970 10 10 80001----2038-01-19 03:14:07
timestamp 和datetime显示结果一样
但是显示范围不同,其次建表时timestamp格式可以设置默认值,datetime不行
更新表时可以设置timestamp类型的列自动更新为当前时间
time -838:59:59 ----838:59:59
year 1901----2155 可以使用year(2)和year(4)
与时间相关的函数
now current_timestamp sysdate
1,now和current_timestamp是同样的
2,sysdate函数返回执行当前函数时的时间,而now返回的事执行sql语句时的时间
时间加减
如果出现目标年份是闰月,会自动加减1天
date_add(date,interval expr unit)
date_sub(date,interval expr unit)
date_add(now(),interval 1 day)
unit 可以是如下数据
year
month
day
week
hour
minute
second
microsecond
date_format()函数,其作用是按用户需求格式化打印日期,如果查询条件使用建议使用时间索引。
select date_format(now() ,'%Y%m%d') as datetime ;//20161118
select date_format(now() ,'%Y-%m-%d') as datetime ;//2016-11-18