1. mongo
mongo ISODate是一种存储时间的object,它支持到毫秒精度,如果要存储到纳秒精度,则最好用long存储时间戳的方式。
golang time.Time是带有时区的时间,在存到Mongo时驱动会转化为ISODate类型,ISODate类型在数据库存储为UTC时间,ISODate.toLocaleString()可以显示当前带有当前时区的字符串。
go mongo驱动读取时没有转化为当前时区,还是UTC时区存到time.Time,即time.Time.loc=nil //nil即UTC。
如果time.Time作为map的一个元素,存入mongo时,则time.Time类型转化会有问题,见:https://stackoverflow.com/questions/49657422/using-time-time-in-mongodb-record
golang time.Time的时间精度是到纳秒[0,999999999],所以如果是取的time.Now()存入mongo后再取出,与之前的变量比较即使时区一样两者也是不相等的。因为精度有损失。
2.MySQL
mysql表达时间的有: DATE, TIME, DATETIME, TIMESTAMP,和YEAR.他们对应的零值分别为:’0000-00-00’,’00:00:00’,’0000-00-00 00:00:00’,’0000-00-00 00:00:00’,0000.当存入值无效或者超出对应类型范围时,就会被设置成零值
Original: https://blog.csdn.net/yshhuan/article/details/114269672
Author: offhours365
Title: 数据库time类型存储
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817520/
转载文章受原作者版权保护。转载请注明原作者出处!