如果不使用PHP,我不确定这是否可行,但我很乐意尝试。
我有一个看起来像这样的数据库(其他一些东西,但这都是相关的:
Date_Day
(范围从1到31,没有尾随0)
Date_Month
(是1月到12月的范围,不是数字)
Date_Year
(是4位数格的年份,例如:2005年)
Total
(带小数点后2位的数字)
我知道存储日期的方式很糟糕,但这是我给出的数据库。如果有一个查询我可以使用这些列来创建一个实际的DATETIME列,我很乐意这样做,我只是不知道那个查询是什么样的。
我有这个查询,它返回前几年这一天的总销售额:
SELECT
Date_Year, Date_Month, SUM(Total)
FROM
tablename
WHERE
Date_Year < YEAR(CURDATE())
AND
Date_Month = MONTHNAME(CURDATE())
AND
Date_Day = DAY(CURDATE())
GROUP BY
Date_Year, Date_Month
因此,如果我今天运行这个,我会获得前几年10月4日的每日总数。问题是在销售方面,这对比较增长并不是很有帮助。我真正需要的是前几年10月第一个星期五的每日总数。
这可能而不必依赖PHP吗?如果是这样,我将非常感谢你的帮助。
谢谢。
答案 0 :(得分:0)
您可能正在寻找 DAYOFWEEK()
返回日期的工作日索引(1 =星期日,2 =星期一,...,7 =星期六)。这些索引值对应于ODBC标准。
mysql> SELECT DAYOFWEEK('2007-02-03');
> 7
答案 1 :(得分:0)
SELECT
Date_Year, Date_Month, SUM(Total)
FROM
tablename
WHERE
Date_Year < YEAR(CURDATE())
AND
Date_Month = MONTHNAME(CURDATE())
AND
Date_Day = DAY(LAST_DAY(CURDATE()) - ((28 + WEEKDAY(LAST_DAY(CURDATE())) - 4)))
GROUP BY
Date_Year, Date_Month
也许这会有所帮助