Smi*_*ave 9 mysql mysql-workbench
我可以检查提供的日期是否是该月的第二个或第四个星期日?
例如: 假设我进入2016年3月3日,然后是3月份的第2个星期日.那么我怎样才能使用MySQL来了解它呢?
这是一个解决方案:
SET @var = date '2016-03-13';
select
sum( month(@var - INTERVAL 7 * t.a DAY) = month(@var) ) as WeekOfMonth,
dayname(@var) as Weekday
from (select 0 as a union select 1 union select 2 union select 3 union select 4) as t;
Run Code Online (Sandbox Code Playgroud)
输出:
mysql> SET @var = date '2016-03-13';
Query OK, 0 rows affected (0.00 sec)
mysql> select
-> sum( month(@var - INTERVAL 7 * t.a DAY) = month(@var) ) as WeekOfMonth,
-> dayname(@var) as Weekday
-> from (select 0 as a union select 1 union select 2 union select 3 union select 4) as t;
+-------------+---------+
| WeekOfMonth | Weekday |
+-------------+---------+
| 2 | Sunday |
+-------------+---------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
要在您的环境中使用,只需将"@var"替换为您的日期输入.
鉴于这x是一个DATE或DATETIME:
DAYNAME(x) = 'Sunday' AND
FLOOR((DAYOFMONTH(x) + 6 ) / 7) IN (2, 4)
Run Code Online (Sandbox Code Playgroud)
2,4 - 第2和第4个星期天.
FLOOR... - 给出哪个星期的一周.
因此,此代码可以轻松适应一周中的不同日期和一个月的不同周.
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |