jdbc url时指定serverTimezone,是会话timezone,数据查询与写入以该timezone为准,默认为UTC,比我国的GMT+8少8小时,也可以在mysql server配置中设为指定的timezone。
会话timezone在哪起作用?
三种时间数据格式:
1、datetime 以当前timezone写入,不存储timezone信息,写的时候是gmt+8,读的时候不清楚写时用的是utc还是gmt+8,看会话timezone的值为准,所以读写需要保持timezone一致才不会出错。
2、timestamp存1970年以来的时间戳,相当于可以根据timezone生成不同的日期时间。
3、存成长整型bigint,和timestamp类似,只是查库时,需要用函数转换,可读性不如timestamp。
结语
一般应用,为了读写不受时区影响,我们会存timestamp或长整型。而datetime可以用于那些不需要国际化的应用。
No Comments
Leave a comment Cancel