Mysql 从年和周数中获取日期间隔
Mysql get date interval from year and weekNumber
我有一个 table,其中包含字段 year
、week_number
、stock_count
。在给定 start_date
和 end_date
的给定日期范围内,我将如何获取所有行?
如果你的table没有date
字段,你就不能使用start/end_date
。 => 这将是“正常”选项。
在你的情况下,(我想这就是你想要的),你只能从 start/end_date 中提取 year
和 week
,然后才 运行查询。
SELECT WEEK('2020-05-18');
将 return 对应于该日期的那一周
SELECT YEAR('2020-08-28');
将从您的日期中提取年份
然后你可以运行你的查询基于year
和week
。
我希望它有意义...
下面的例子假设 start_date
是 2020-02-28
并且 end_date
是 2021-01-31
:
SELECT *
FROM `your_table_name`
WHERE (
`year` > YEAR('2020-02-28') OR
(`year` = YEAR('2020-02-28') AND `week_number` >= WEEK('2020-02-28'))
) AND (
`year` < YEAR('2021-01-31') OR
(`year` = YEAR('2021-01-31') AND `week_number` <= WEEK('2021-01-31'))
)
我有一个 table,其中包含字段 year
、week_number
、stock_count
。在给定 start_date
和 end_date
的给定日期范围内,我将如何获取所有行?
如果你的table没有date
字段,你就不能使用start/end_date
。 => 这将是“正常”选项。
在你的情况下,(我想这就是你想要的),你只能从 start/end_date 中提取 year
和 week
,然后才 运行查询。
SELECT WEEK('2020-05-18');
将 return 对应于该日期的那一周
SELECT YEAR('2020-08-28');
将从您的日期中提取年份
然后你可以运行你的查询基于year
和week
。
我希望它有意义...
下面的例子假设 start_date
是 2020-02-28
并且 end_date
是 2021-01-31
:
SELECT *
FROM `your_table_name`
WHERE (
`year` > YEAR('2020-02-28') OR
(`year` = YEAR('2020-02-28') AND `week_number` >= WEEK('2020-02-28'))
) AND (
`year` < YEAR('2021-01-31') OR
(`year` = YEAR('2021-01-31') AND `week_number` <= WEEK('2021-01-31'))
)