我想创建新的表行。我从原始表中获取一个条目,然后将此项目复制到新行中。但是DateTime值总是增加一个月。我想循环输入条目表中的每个条目。
我的原始表格:
ID MyDateTime
1 2018-07-22 11:38:23.123
2 2018-07-22 11:39:23.123
我的预期结果:
ID MyDateTime
1 2018-07-22 11:38:23.123
2 2018-07-22 11:39:23.123
3 2018-08-22 11:38:23.123
4 2018-08-22 11:39:23.123
这是我到目前为止所拥有的,但是我坚持了:https://pastebin.com/CjhAJ49Q
答案 0 :(得分:1)
如果您使用的是SQL Server,则可以执行以下操作将年份添加到日期:
select DATEADD(year, 1, MyDateTime) from originalTable
因此,从originalTable中选择所有行,将它们与上面的查询合并,然后将所有行插入到destinationTable中:
insert into destinationTable
select MyDateTime from originalTable
union all
select DATEADD(year, 1, MyDateTime) from originalTable
答案 1 :(得分:1)
如果要更改表格,请使用insert
:
insert into t (MyDateTime)
select dateadd(month, 1, MyDateTime)
from t
order by MyDateTime;
如果您只想查询产生结果的查询,则:
select row_number() over (order by MyDateTime) as id,
MyDateTime
from ((select MyDateTime from t) union all
(select dateadd(month, 1, MyDateTime) from t
) t
order by MyDateTime;