美文网首页
跨国业务的数据库时区方案

跨国业务的数据库时区方案

作者: 江江的大猪 | 来源:发表于2021-07-31 23:06 被阅读0次

本文默认mysql版本大于5.7,之前版本对datetime不支持毫秒,同一个表里不允许有多个自动更新的时间字段

  • 建表语句如下,创建时间和更新时间由数据库自动维护、精确到毫秒。字符集utf8mb4、区分大小写
CREATE TABLE IF NOT EXISTS `test`
(
    `id`          bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
    `create_time`   datetime(3)         NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
    `update_time`   datetime(3)         NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
    PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT ='测试表';
  • 现在都2021年了,时间字段就不要再用timestamp字段了
  • datetime类型没有和时区没关系,比如在东八区写入了2021-07-31 14:45:39.202,在东九区读出来依然是2021-07-31 14:45:39.202
  • CURRENT_TIMESTAMP函数根据mysql服务设置的时区,获得对应时区的当前时间
  • datetime在mysql存储的时候实际存储的就是20210731144539202这个数字,所以和时区无关
  • 所以对跨境业务,在不同国家的数据库最好约定好一个统一的时区,建议都用utf+0,这样不同国家的服务从数据库中读出来在根据时区自己转换就好

    出于合规要求,数据是不允许跨境流动的,所以不同国家的服务都应该有一个独立的数据库,而不是所有国家的服务公用一个数据库。但是一些小公司做跨境电商类的可能不会这么规范,真的就是共用一个数据库了

相关文章

  • 跨国业务的数据库时区方案

    本文默认mysql版本大于5.7,之前版本对datetime不支持毫秒,同一个表里不允许有多个自动更新的时间字段 ...

  • 关于Mysql时区的那点事儿

    关于Mysql时区的那点事儿 查看当前数据库时区 Methods(either): 设置当前数据库时区 Metho...

  • SAAS-HRM-day5(ElasticSearch)

    1. 课程上下线业务1.1 业务描述1.2 技术方案1.2.1 技术方案一:数据库状态做判断-->不可取1.2.2...

  • MySQL数据库修改时间、时区

    MySQL数据库修改时间、时区 mysql默认使用的SYSTEM时区,即EST时区,查询相关资料可知,EST时区要...

  • 服务器修改时区

    查看服务器时间 修改时区 方法一 : 方法二 : 注意,修改时区后,若数据库是之前时区启动的,需要重启数据库

  • 【mysql】sql语句中修改时区

    查看时区 查看全局时区和会话时区 登录数据库查看时区配置: 说明: system_time_zone 表示系统使用...

  • 【转载】mysql时区错误处理(docker安装)

    mysql时区介绍 先来校验下数据库是否真的时区不对. 进入MySQL数据库, 运行语句: 会返回类似这样的数据:...

  • 修改时区

    查看时区 登录数据库查看时区配置: system_time_zone 表示系统使用的时区是 EDT即北美的东部夏令...

  • ABAP时间的转换

    SAP数据库表中的时间是根据系统时区存储的,这里需要将时间转换成用户时区。首先获取系统时区: 然后获取用户时区: ...

  • jdbc连接数据库时错误:The server time zon

    这是由于数据库和系统时区差异所造成的,mysql-jdbc 6.0以上版本需要在连接数据库url后面指定所在时区。...

网友评论

      本文标题:跨国业务的数据库时区方案

      本文链接:https://www.haomeiwen.com/subject/autlvltx.html