sql - 是否可以将 mySQL 设置为星期六作为一周的开始?

标签 sql mysql

是否可以将 mySQL 设置为星期六作为一周的开始?

我正在尝试运行如下查询:

SELECT DISTINCT(week(`date`)) 
  FROM `table` 
 WHERE `date` BETWEEN '2010-08-14' AND '2010-08-27'

但是一周从周六开始,而不是周日或周一。 (这是发薪周,不是常规周) 似乎星期功能的模式只提供星期日或星期一作为开始日期。

我读过设置 default_week_format 有帮助,但我认为这对我不起作用,因为这仅适用于特定报告,而不适用于整个系统。

我还有其他选择吗?

最佳答案

摘自 Tomasz 回答中链接的评论:

Problem: To find week start and end date with user specified start of the week day and user specified date for which the week is to be found.

date_sub(t.date, interval if(dayofweek(t.date)-$weekStartingDay >= 0, dayofweek(t.date)-$weekStartingDay, dayofweek(t.date)-$weekStartingDay+7) day) week_start

date_sub(t.date, interval if(dayofweek(t.date)-$weekStartingDay >= 0, dayofweek(t.date)-$weekStartingDay, dayofweek(t.date)-$weekStartingDay+7) - 6 day) week_end

关于sql - 是否可以将 mySQL 设置为星期六作为一周的开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687119/

相关文章:

sql - 合并两个具有不同 ORDER BY 的 SELECT 查询

sql - 这些查询中的哪一个更可取?

php - 从 MySQL 获取高级数据

php - 将php查询结果转成json

php - 比较另一个表中是否存在记录

mysql - 无法弄清楚为什么 mySql 数据库语法无法编译

mysql - Ruby on Rails - 总和计算不适用于模型中的关联

mysql - 显示所有有保险和无保险的患者

sql - EXISTS在Oracle中如何工作,它与IN有什么区别?

mysql - 为什么使用mysqldump导入数据后会出现固定的block size write?