复制数据库值并调整其日期时间

时间:2018-07-22 09:44:17

标签: sql sql-server datetime

我想创建新的表行。我从原始表中获取一个条目,然后将此项目复制到新行中。但是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

2 个答案:

答案 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;