MySQL中有五种与日期相关的数据类型,分别是DATETIME(8字节),DATE(3字节),TIMESTAMP(4字节),YEAR(1字节),TIME(3字节)。
(1),DATE与DATETIME.DATE显示日期范围为"1000-01-01"到"9999-01-01";DATETIME显示日期范围为"1000-01-01 00:00:00"到"9999-01-01 23:59:59。
(2),DATETIME与TIMESTAMP显示结果是一样的,但其不同之处有:TIMESTAMP可设置一个默认值,而DATETIME则不行;在更新表时,可以设置TIMESTAMP类型的列自动更新时间为当前时间。
(3),TIME显示的范围为"-838:59:59"到"838:59:59";TIME类型不仅可以用来保存一天中的时间,也可保存时间间隔,这就是TIME的值可以大于23,可以为负值。
(4)相关函数NOW,CURRENT_TIMESTAMP,SYSDATE,它们都可返回当前的系统时间,其中NOW与CURRENT_TIMESTAMP几乎相等;SYSDAT函数返回的是执行到当前函数时的时间,而NOW是执行SQL语句时的时间。
mysql> select now(),
current_timestamp(),
sysdate(),
sleep(2),
now(),
current_timestamp(),
sysdate();
结果为:
now(): 2014-01-06 11:48:07
current_timestamp() :2014-01-06 11:48:07
sysdate(): 2014-01-06 11:48:07
sleep(2):0
now(): 2014-01-06 11:48:07
current_timestamp() :2014-01-06 11:48:07
sysdate(): 2014-01-06 11:48:07
sleep(2):0
在sleep2秒之后SYSDAT与另外两个函数相差了2秒。