MySQL数据库中关于日期、时间的类型有以下四中:Date,DateTime,TimeStamp和Time
1、DATETIME类型:用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。
2、DATE类型用在你仅需要日期值时,没有时间部分。MySQL检索并且以'YYYY-MM-DD'格式显示DATE值,支持的范围是'1000-01-01'到'9999-12-31'。
3、TIMESTAMP类型:提供日期和时间信息,同样以'YYYY-MM-DD HH:MM:SS'格式显示。和datetime类型的区别是保存的时间较小,年的数字在:1970 --2037 之间。你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作(默认更新时自动刷新)。
注:TIMEStAMP类型插入数据时需要使用引号,且格式为'YYYY-MM-DD HH:MM:SS',如果格式错误,那么现实成0000-00-00 00:00:00,不能将时间戳(int型)插入到该类型字段中。且该字段能够这只默认值,和更新刷新。
ALTER TABLE categories
ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
此外,在sql的控制台上输出timestamp显示的是格式化后的时间,通过mybatis框架:
- 将timesstamp读取到projo对象中,对象中对应timestamp字段的属性类型是string时,获取到的值是格式化时间如(2020-06-03 17:55:41.0);
- 将timesstamp读取到Map中,获取到的值也是格式化的时间,如(2020-06-03T09:55:41.000+0000);
当然,我们可以在sql中使用DATE_FORMAT(u.create_time,'%Y-%m-%d %H:%i:%s') createTime,来格式化。
4、TIME数据类型表示一天中的时间。MySQL检索并且以"HH:MM:SS"格式显示TIME值。支持的范围是'00:00:00'到'23:59:59'。
实例:
test表结构:
插入数据:
查看:
更新:
timestamp字段插入时也会自动填充。