如何在给定日期范围内的表格中插入日期

时间:2014-01-23 05:02:33

标签: mysql sql date

我有像

这样的表格字段(列)
ID
DATE

我想在日期范围之间插入上表中的行

例如:

如果我将日期范围指定为2014年1月23日至2014年1月25日

然后行插入结果应该是这样的

   ID   |   DATES   

    1   |   23/1/2014

    2   |   24/1/2014

    3   |   25/1/2014

请以查询非存储过程/功能

的形式向我提供解决方案

3 个答案:

答案 0 :(得分:2)

如果您想在一个查询中使用生成的范围,请查看问题的解决方案How to get list of dates between two dates in mysql select query

答案 1 :(得分:0)

在MySQL中试试这个等价物。这适用于SQL Server但未在MySQL中试用

Declare @date table(autoid int IDENTITY(1, 1),d date)
Declare @d datetime

set @d='20140123'

While @d<='20140125'
Begin
    Insert into @date values (@d)
    set @d=@d+1
End
Select autoid ,d as DateCol from @date

答案 2 :(得分:0)

此查询将有助于获取范围之间的所有日期。你可以将它插入你的表中:

    select * from (select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date from
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
    where selected_date between '2012-02-10' and '2012-02-15'