-
DATETIME类型是为了存储既包含’日期’又包含’时间’的值。MySql以YYYY-MM-DD HH:MM:SS的格式来提取和显示DATETIME类型的值。DATETIME类型支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。 -
TIMESTAMP类型是为了存储既包含’日期’又包含’时间’的值。TIMESTAMP类型支持的范围是1970-01-01 00:00:01(UTC时间)到2038-01-19 03:14:07(UTC时间)。 -
DATETIME和TIMESTAMP类型的值可以包含带小数的秒(最多6位),此时,DATETIME类型支持的范围是1000-01-01 00:00:00.000000到9999-12-31 23:59:59.999999,TIMESTAMP类型支持的范围是1970-01-01 00:00:01.000000(UTC时间)到2038-01-19 03:14:07.999999(UTC时间)。 - 在存储的时候,MySql将
TIMESTAMP类型的值从当前时区转换到UTC;反过来,在读取的时候,再从UTC转换到当前时区,也就是说,TIMESTAMP类型是和时区相关的。而DATETIME类型不会有这种时区问题。举个例子看一下吧。 -
DATETIME和TIMESTAMP还支持自动初始化和自动更新到当前的日期和时间。 - 对于表中类型为
DATETIME和TIMESTAMP的列来说,既可以将当前时间戳赋为其默认值,也可以将当前时间戳赋为其自动更新的值,或者二者同时赋值。 - 对于
自动初始化的列来说,当插入行的时候,如果没有为该列指定值,那么其值将会被设置为当前时间戳。举个例子吧。 - 对于
自动更新的列来说,如果其所在行的其他列的值被更新了,那么其值将会被设置为当前时间戳。举个例子吧。 - 如果一个类型为
DATETIME或TIMESTAMP的列的定义中明确指定了秒的精度,那么在该列的定义中的其他地方都要保持一致,说的有点不清楚,直接看例子吧。
相关文章: