在标准SQL中,可以使用日期函数和条件语句来获取从星期一开始的周日期。以下是一种实现方式:
SELECT
CASE
WHEN DAYOFWEEK(date_column) = 1 THEN DATE_SUB(date_column, INTERVAL 6 DAY)
WHEN DAYOFWEEK(date_column) = 2 THEN date_column
WHEN DAYOFWEEK(date_column) = 3 THEN DATE_SUB(date_column, INTERVAL 1 DAY)
WHEN DAYOFWEEK(date_column) = 4 THEN DATE_SUB(date_column, INTERVAL 2 DAY)
WHEN DAYOFWEEK(date_column) = 5 THEN DATE_SUB(date_column, INTERVAL 3 DAY)
WHEN DAYOFWEEK(date_column) = 6 THEN DATE_SUB(date_column, INTERVAL 4 DAY)
WHEN DAYOFWEEK(date_column) = 7 THEN DATE_SUB(date_column, INTERVAL 5 DAY)
END AS start_of_week,
DATE_ADD(
CASE
WHEN DAYOFWEEK(date_column) = 1 THEN DATE_SUB(date_column, INTERVAL 6 DAY)
WHEN DAYOFWEEK(date_column) = 2 THEN date_column
WHEN DAYOFWEEK(date_column) = 3 THEN DATE_SUB(date_column, INTERVAL 1 DAY)
WHEN DAYOFWEEK(date_column) = 4 THEN DATE_SUB(date_column, INTERVAL 2 DAY)
WHEN DAYOFWEEK(date_column) = 5 THEN DATE_SUB(date_column, INTERVAL 3 DAY)
WHEN DAYOFWEEK(date_column) = 6 THEN DATE_SUB(date_column, INTERVAL 4 DAY)
WHEN DAYOFWEEK(date_column) = 7 THEN DATE_SUB(date_column, INTERVAL 5 DAY)
END,
INTERVAL 6 DAY
) AS end_of_week
FROM your_table;
上述SQL语句中,date_column
是包含日期的列名,你需要将其替换为你实际使用的列名。这个查询会返回一个结果集,其中包含从星期一开始的周的起始日期和结束日期。
对于这个问题,腾讯云的相关产品和产品介绍链接如下:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。
领取专属 10元无门槛券
手把手带您无忧上云