我需要每周(每个月的第一个星期五)举办一个活动,并且除了每月的第一个星期五之外的每个星期五举办另一个活动。我能想到的只是
IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 1 AND 7 THEN ....
和
IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 8 AND 31 THEN ....
但是有没有更好/更简洁的查询呢?
我需要每周(每个月的第一个星期五)举办一个活动,并且除了每月的第一个星期五之外的每个星期五举办另一个活动。我能想到的只是
IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 1 AND 7 THEN ....
和
IF WEEKDAY()=4 AND DAYOFMONTH() BETWEEN 8 AND 31 THEN ....
但是有没有更好/更简洁的查询呢?
SET @x := '2018-06-01';
SELECT CASE WHEN WEEKDAY(@x) = 4
THEN CASE WHEN DAYOFMONTH(@x) < 8
THEN 'FIRST FRIDAY'
ELSE 'SOME OTHER FRIDAY' END
ELSE 'NOT FRIDAY' END x;
+--------------+
| x |
+--------------+
| FIRST FRIDAY |
+--------------+
SET @x := '2018-06-08';
SELECT CASE WHEN WEEKDAY(@x) = 4
THEN CASE WHEN DAYOFMONTH(@x) < 8
THEN 'FIRST FRIDAY'
ELSE 'SOME OTHER FRIDAY' END
ELSE 'NOT FRIDAY' END x;
+-------------------+
| x |
+-------------------+
| SOME OTHER FRIDAY |
+-------------------+
SET @x := '2018-06-07';
SELECT CASE WHEN WEEKDAY(@x) = 4
THEN CASE WHEN DAYOFMONTH(@x) < 8
THEN 'FIRST FRIDAY'
ELSE 'SOME OTHER FRIDAY' END
ELSE 'NOT FRIDAY' END x;
+------------+
| x |
+------------+
| NOT FRIDAY |
+------------+