数据库存储时间
1 Datetime
Datetime是没有时区信息的,
DateTime 需要耗费 8 个字节的存储空间
DateTime :1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
2 Timestamp
Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相
应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
Timestamp 只需要使用 4 个字节的存储空间
Timestamp:1970-01-01 00:00:01 ~ 2037-12-31 23:59:59
3 时区的一些命令
# 查看当前会话时区
SELECT @@session.time_zone;
# 设置当前会话时区
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
# 数据库全局时区设置
SELECT @@global.time_zone;
# 设置全局时区
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
4 数值时间戳
很多时候,我们也会使用 int 或者 bigint 类型的数值也就是时间戳来表示时间。
这种存储方式的具有 Timestamp 类型的所具有一些优点,并且使用它的进行日期排序以及对比等操作 的效率会更高,跨系统也很方便,毕竟只是存放的数值。缺点也很明显,就是数据的可读性太差了,你 无法直观的看到具体时间。
5其它
5-1- 不要用字符串存储时间
- 字符串占用的空间更大!
- 字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。
我对任何唾手而得,快速,出自本能,即兴,含混的事物没有信心。我相信缓慢,平和,细水长流的力量,踏实,冷静。我不相信缺乏自律精神和不自我建设,不努力,可以得到个人或集体的解放。