如何获得该范围的天数列表?

时间:2015-11-03 06:13:00

标签: mysql sql

我有一张桌子:

2015-11-03
2015-11-04
2015-11-05
2015-11-07

我需要得到以下内容:

import pandas as pd
import numpy as np

a = np.array([1,2,3,4])
b = np.array([5,6,7,8])

df = pd.DataFrame({"name1" : a, "name2" : b})
df.to_csv("submission2.csv", index=False)

2 个答案:

答案 0 :(得分:0)

您可以使用计数表来执行此操作:

SELECT DATE_ADD(from_date, INTERVAL rn DAY) AS `date`
FROM mytable
INNER JOIN (
  SELECT @rn := @rn + 1 AS rn
  FROM (
    SELECT *
    FROM (
      SELECT 1 AS n1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL
      SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
      SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 
    ) AS t1 CROSS JOIN (
      SELECT 1 AS n2 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
      SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL 
      SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
    ) AS t2
  ) AS t CROSS JOIN (SELECT @rn := -1) AS var   
) AS tally ON DATEDIFF(to_date, from_date) >= rn
ORDER BY `date`

上述查询假设连续的[from_date, to_date]间隔重叠。

使用的计数表是两个内联表之间CROSS JOIN的结果,每个行有10行,因此它只有100行。如果您的数据包含大于100天的[from_date, to_date]间隔,则可能需要更大的表格。

Demo here

答案 1 :(得分:0)

您可以使用date_format()函数来执行此操作:

SELECT DATE_FORMAT(fromDate,'%Y-%m-%d') AS FromDate FROM tablename;

<强>输出:

FROM日期
2015年11月3日
2015年11月4日
2015年11月5日
2015年11月7日