在家自己做项目,研究了一下数据库设计,记下学习成果。
数据库字段的时间设计很多公司都会选择字符串类型,这个是有争议的。其实这个时间类型的选择,主要看需求,varchar类型也是可以用的, 数据库中的时间仅仅是用来显示、查找的,那么影响还不算大,但如果对时间字段进行一些算法如计算星期几,或者格式化类型不同,这边取值一个格式,另外一个客户端连接取值是另一个格式就比较麻烦,还是选择datetime比较好。
另外在存储上
varchar转化存储数据库:
private static String sdf1 = "yyyy-MM-dd HH:mm:ss"; //用来获取当前时间 public static String sdf1(){ SimpleDateFormat sdf = new SimpleDateFormat(sdf1); return sdf.format(new Date()); }
datetime存储数据库则直接存储:
setCreateTime(new Date());
在取值上
varchar直接取出就是自己设置的SimpleDateFormat格式:
2020-03-28 22:25:55
datetime类型取值为:
2020-03-28T22:25:55.000需要转换为需要的格式,可以使用
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
转换为yyyy-MM-dd HH:mm:ss格式,设置时区为GMT+8,这样会在取出的值添加8个小时。