【发布时间】:2019-12-03 15:17:00
【问题描述】:
我正在使用 MySQL,我有两个日期“起始日期”和“截止日期”,根据这些日期,我想获取“截止日期”和“起始日期”之间的那一周的周数和日期。
我已经尝试了以下 mysql 查询。
SELECT count(*) as count,
CONCAT(DATE_FORMAT(DATE_ADD(FROM_DAYS(TO_DAYS(FROM_UNIXTIME(`webform_submissions`.`submitted`)) -MOD(TO_DAYS(FROM_UNIXTIME(`webform_submissions`.`submitted`)) -1, 7)),INTERVAL -6 DAY),'%M %d'), ' - ' ,DATE_FORMAT(FROM_DAYS(TO_DAYS(FROM_UNIXTIME(`webform_submissions`.`submitted`)) -MOD(TO_DAYS(FROM_UNIXTIME(`webform_submissions`.`submitted`)) -1, 7)),'%M %d')) as date ,
CONCAT(YEAR(FROM_UNIXTIME(`webform_submissions`.`submitted`)), '/', WEEK(FROM_UNIXTIME(`webform_submissions`.`submitted`))) as week
FROM `webform_submissions`
where `webform_submissions`.`nid` = 121
AND DATE_FORMAT(FROM_UNIXTIME(`webform_submissions`.`submitted`), '%Y-%m-%d') between '2019-11-01' and '2019-12-03'
GROUP BY week
ORDER BY `webform_submissions`.`submitted` ASC
根据上述查询显示如下结果。
但它似乎给出了错误的结果,因为第 43 周位于 10 月 21 日至 27 日之间,我想在 '2019-11-01' 和 '2019-12-03' 之间得到结果。
预期的输出应该像屏幕截图一样。因为从日期“2019-11-01”开始位于 10 月 28 日至 11 月 3 日(第 44 周)之间。所以记录应该从 44 周数开始。
知道如何获得正确的周数和日期吗?
【问题讨论】:
-
实际上
week 43介于21-27Oct之间,您的查询结果也显示相同。为什么你认为它是错误的? -
@ArunPalanisamy ,实际上从日期是 11 月 1 日,所以根据我的说法,第一条记录在(10 月 28 日至 11 月 3 日)为第 44 周,因为 11 月 1 日的日期介于 44 周数之间
-
每天都有价值吗?
-
@Nick,在 '2019-11-01' 和 '2019-12-03' 之间没有某些日期有记录,有些日期没有记录。
-
你的预期输出是什么?