如何从两个日期将多个记录插入临时表?

时间:2015-12-22 09:18:17

标签: sql tsql

我的商店程序中有这个查询。查询是:

INSERT INTO #TeporaryTableAcquaMensile
SELECT 'WATER',CONVERT(varchar(12),GETDATE(),105),VALUE_START
FROM AA_V_MV_Obiettivi_x_modello_virtuale
WHERE CONVERT(varchar(12),GETDATE(),105) between DatEStart and DateEnd
  and idtipoparametro=2 AND IDModelloVirtuale=15

此查询有效,但我想从DateStart到DateEnd每天插入一些值。

所以,例如,如果我有DateStart = 2015-12-01和DateEnd = 2015-12-31,我想插入我的临时表31记录。有可能这样做吗?

1 个答案:

答案 0 :(得分:0)

试试这个

您需要创建一个包含1到31之间数据的数字表,然后使用

create table numbers(number int)
insert into numbers(number)
select top 31 row_number() over (order by (select 1)) from master..spt_values

INSERT INTO #TeporaryTableAcquaMensile
    SELECT 'WATER',CONVERT(varchar(12),GETDATE(),105),VALUE_START
    FROM AA_V_MV_Obiettivi_x_modello_virtuale, numbers 
    WHERE CONVERT(varchar(12),GETDATE(),105) between DatEStart and DateEnd
      and idtipoparametro=2 AND IDModelloVirtuale=15 
and number between 1 and datediff(day,dateend,dateStart)