如何将连续日期转换为几周,saturday should be the week ending
Eample:
2/27/2015 3/6/2015 3/13/2015 3/20/2015
这里我提供了有关我的要求的更多信息,以便您可以轻松理解。
我的db中有一个datetime字段,比如说Date2。我需要将这个日期分为几个星期mm/ dd/ yyyy.
让我们以date2
开头为例1/1/2015
到20/1/2015
。
1/1/2015-3/1/2015 this range displayed as 3/1/2015,
4/1/2015-10/1/2015 ----------------------- 10/1/2015,
11/1/2015-17/1/2015 ---------------------- 17/1/2015,
18/1/2015-24/1/2015 --------------------- 24/1/2015
答案 0 :(得分:0)
我不清楚你在问什么,所以我猜。如果我猜错了,请原谅。
我们假设您有一个名为DATETIME
的任意Date2
列,并且您希望在该值之前产生紧邻周日的DATE
。换句话说,您希望找出DATETIME
发生的那一周。
你可以这样做:
FROM_DAYS(TO_DAYS(Date2) -MOD(TO_DAYS(Date2) -1, 7))
因此,如果您的销售表包含customer_id
,Date2
和sale
,则可以按周汇总:
SELECT FROM_DAYS(TO_DAYS(Date2) -MOD(TO_DAYS(Date) -1, 7)) week_beginning,
COUNT(*) num_transactions,
COUNT(DISTINCT customer_id) num_customers,
SUM(sale) total_sales
FROM sales
GROUP BY FROM_DAYS(TO_DAYS(Date2) -MOD(TO_DAYS(Date) -1, 7))
这将显示每个日历周开始的星期日的日期。如果您希望星期六在每个日历周结束,请改用它。
SELECT FROM_DAYS(TO_DAYS(Date2) -MOD(TO_DAYS(Date) -1, 7))
+ INTERVAL 6 DAY week_ending,
COUNT(*) num_transactions, ...
我在这里详细写了这篇文章:http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/
你可以