SQL生成一段时间内的日期,好像是存储在临时表的,可以查询显示,但是不能保存到新表中,请问有什么代码可以保存呢?
生成的一段时间内的连续日期,可以select看到日期,但是将此保存到已有表或者保存到新表都报错
SELECT *
FROM cte
ORDER BY cte.d;
INSERT into table3(date) -- 结果保存
select *
from cte
报错为:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT into table3(date)
select d
from cte' at line 7
时间: 0.099s
(2)尝试保存到新表table2中,发生报错
WITH RECURSIVE cte (d) AS
(SELECT '2021-01-04'
UNION ALL
SELECT d + INTERVAL 1 DAY
FROM cte
WHERE d + INTERVAL 1 DAY <= '2021-01-09')
CREATE table table2 as -- 结果保存
select *
from cte
报错为:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE table table2 as -- 结果保存
select *
from cte' at line 7
时间: 0.096s
尝试了多种方式保存结果(已有表/新表)还是报错
将一段时间内的连续日期保存到表中,之后方便和其他日期的数据join
可以的,只是顺序要换一下,CTE后面只能跟select
insert into table_name
WITH RECURSIVE cte (d) AS
(SELECT '2021-01-04'
UNION ALL
SELECT d + INTERVAL 1 DAY
FROM cte
WHERE d + INTERVAL 1 DAY <= '2021-01-09')
select * from cte
语法错误
INSERT into table3(列名) values (值)
或者其实你想用的是select into的语法?
如果保存的表已经存在,就用insert into tablename (columnname,...) values (value1, ....)
如果需要保存在新表中,就直接select colums, ... from tablename into newtablename
你在查询得时候直接插入到新建得表不就可以了吗