[英]Trying to find this day last year. Ex: Get the 1st Friday of October, not the October the 4th
我不确定即使不使用PHP也不可能做到这一点,但是我很想尝试一下。
我有一个看起来像这样的数据库(一堆其他东西,但这就是所有相关的东西:
Date_Day
(范围为1到31,无尾随0)
Date_Month
(从一月到十二月的范围,不是数字)
Date_Year
(是4位数格式的年份,例如:2005)
Total
(小数点后两位)
我知道日期的存储方式很糟糕,但这是我得到的数据库。 如果有一个查询,我可以使用这些列来创建实际的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就能做到吗? 如果是这样,我将非常感谢您的帮助。
谢谢。
您可能正在寻找DAYOFWEEK()
返回日期的星期几索引(1 =星期日,2 =星期一,…,7 =星期六)。 这些索引值对应于ODBC标准。
mysql> SELECT DAYOFWEEK('2007-02-03');
> 7
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
也许这会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.