我们尝试在运行时将数据从数据库 1 (DB1( 复制到数据库 2 (DB2(。DB1 和 DB2 位于两个不同的时区,比如说 tz1 和 tz2。我们希望将 DB1 时间列转换为 tz2,同时动态复制到 DB2。我们尝试使用 convert_tz(( 和子查询的组合,但无法使其工作。任何正确方向的指示将不胜感激。
MariaDB 版本是 10.3.7
感谢大家的回复和投票。我现在已经设法解决了手头的问题。下面的查询解决了它(由于明显的原因,不是确切的(:
insert into DB2.tb2 select C1,convert_tz(T1,'UTC','ASIA/SHANGHAI'), C2, C3 from DB1.tb1 where C1 = 'xxx';
不要接触时区的东西,而是存储到TIMESTAMP
列中,并确保客户端知道他们所在的时区。 这样,存储的时间戳会根据读取器的位置自动调整。