DROP TABLE IF EXISTS num;
CREATE TABLE num (
i int default NULL
)ENGINE=Innodb DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO num(i) VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
DROP TABLE IF EXISTS calendar;
create table calendar(
id int NOT NULL AUTO_INCREMENT,
date date DEFAULT null,
PRIMARY KEY (id),
UNIQUE KEY uk_calendar_date (date) USING BTREE
)ENGINE=Innodb DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO calendar(date) SELECT
ADDDATE(
DATE_FORMAT(
'1970-01-01','%Y-%m-%d'
),
numList.id
) as date
FROM (
SELECT n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000 as id FROM num n1
CROSS JOIN num n10
CROSS JOIN num n100
CROSS JOIN num n1000
) as numList;
我5.3执行不成功
你的sql_mode是啥?
有没有可能和时区有关系,tidb云数据库的时区不是东八区应该
SELECT @@global.time_zone, @@session.time_zone;
看来还真有可能是时区问题
我这4.0.14执行也正常,您这单select是什么样的,不insert看是什么结果
看上面的回复记录,目前看和系统时区有关系,我这是东八区,直接insert 是没有问题的
你可以在tidb中采用session级别设置时区的方法观测下,看看utc是否报错,另外可以看下tidb中select的查询结果,感觉可能显示不对
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。