一、MySQL中如何表示当前时间?
其实,表达方式还是蛮多的,汇总如下:
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()
NOW()
LOCALTIME
LOCALTIME()
LOCALTIMESTAMP
LOCALTIMESTAMP()
TIMESTAMP 和 DATETIME 的不同点:
1 两者的存储方式不一样
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为 UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于 DATETIME
,不做任何改变,基本上是原样输入和输出。
(修改时区后就会有不同)
2 两者所能存储的时间范围不一样timestamp 所能存储的时间范围为: '1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'
。
datetime 所能存储的时间范围为: '1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'
。
TIMESTAMP 和 DATETIME 除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP 更为合适。
关于 TIMESTAMP 和 DATETIME 的自动初始化和更新应用场景:
1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;
2、在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录修改时间;
实现方式:
1、将字段类型设为 TIMESTAMP 或 DATETIME
2、将默认值设为 CURRENT_TIMESTAMP