How to populate a table with a range of dates?

后端 未结 10 1406
夕颜
夕颜 2020-11-22 04:24

I need a MySQL table to hold ALL DATES between 2011-01-01 and 2011-12-31. I have created a table with one column names \"_date\", type DATE.

With what query can I po

10条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-22 05:24

    INSERT INTO my_dates (\`_date\`) SELECT DATE_ADD('2011-01-01', INTERVAL @_tmp:=@_tmp+1 day) \`_date\`
    FROM (SELECT @_tmp:=-1 d 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) a /\*10^1\*/
    JOIN (SELECT 0 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) b /\*10^2\*/
    JOIN (SELECT 0 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) c /\*10^3\*/
    WHERE @_tmp+1 BETWEEN 0 AND DATEDIFF('2011-12-31', '2011-01-01');
    

提交回复
热议问题