How do I find the next saturday in MySQL
You can use WEEKDAY and DATE_ADD function to calculate the next weekday incoming.

Here what you have to do:

SELECT 
  DATE_ADD(NOW(),INTERVAL IF(WEEKDAY(NOW())&gt;=5,
                             (6-WEEKDAY(NOW())),
                             (5-WEEKDAY(NOW()))) DAY);


The query meaning:

With DATE_ADD you will add an interval between the parameter NOW() and one condition assuming my weekday for Saturday is 5, you will have to evaluate if NOW() is greater than 5 or equal, you have to rest it with 6 (Sunday) and if NOW() is less than 5 you have to rest it 5 with the weekday of NOW().

Test:

mysql&gt; SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2015-07-22 07:51:33 |
+---------------------+
1 row in set (0.00 sec)

mysql&gt; SELECT DATE_ADD(NOW(),INTERVAL IF(WEEKDAY(NOW())&gt;=5,(6-WEEKDAY(NOW())),(5-WEEKDAY(NOW()))) DAY);
+------------------------------------------------------------------------------------------+
| DATE_ADD(NOW(),INTERVAL IF(WEEKDAY(NOW())&gt;=5,(6-WEEKDAY(NOW())),(5-WEEKDAY(NOW()))) DAY) |
+------------------------------------------------------------------------------------------+
| 2015-07-25 07:51:34                                                                      |
+------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql&gt; 


EDIT:

If you need to calculate to get the next Saturday if the actual Saturday is at 9:30PM:

New syntax:

SET @ACTUAL_DATE=NOW();
SET @NEXT_SATURDAY=DATE_ADD(@ACTUAL_DATE,INTERVAL IF(WEEKDAY(@ACTUAL_DATE)=5 &amp;&amp; TIME(@ACTUAL_DATE)&gt;'21:30:00',
                                            7,
                                            IF(WEEKDAY(@ACTUAL_DATE)&gt;=5,
                                                (6-WEEKDAY(@ACTUAL_DATE)),
                                                (5-WEEKDAY(@ACTUAL_DATE)))) 
                                        DAY);


Today test:

mysql&gt; SET @ACTUAL_DATE=NOW();
Query OK, 0 rows affected (0.01 sec)

mysql&gt; SET @NEXT_SATURDAY=DATE_ADD(@ACTUAL_DATE,INTERVAL IF(WEEKDAY(@ACTUAL_DATE)=5 &amp;&amp; TIME(@ACTUAL_DATE)&gt;'21:30:00',
    -&gt; 7,
    -&gt; IF(WEEKDAY(@ACTUAL_DATE)&gt;=5,
    -&gt; (6-WEEKDAY(@ACTUAL_DATE)),
    -&gt; (5-WEEKDAY(@ACTUAL_DATE)))) 
    -&gt; DAY);
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SELECT @NEXT_SATURDAY;
+---------------------+
| @NEXT_SATURDAY      |
+---------------------+
| 2015-07-25 21:30:01 |
+---------------------+
1 row in set (0.00 sec)

mysql&gt; 


But if we're on July 25th at 21:30:01 (Saturday):

mysql&gt; SET @ACTUAL_DATE='2015-07-25 21:30:01';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SET @NEXT_SATURDAY=DATE_ADD(@ACTUAL_DATE,INTERVAL IF(WEEKDAY(@ACTUAL_DATE)=5 &amp;&amp; TIME(@ACTUAL_DATE)&gt;'21:30:00',
    -&gt; 7,
    -&gt; IF(WEEKDAY(@ACTUAL_DATE)&gt;=5,
    -&gt; (6-WEEKDAY(@ACTUAL_DATE)),
    -&gt; (5-WEEKDAY(@ACTUAL_DATE)))) 
    -&gt; DAY);
Query OK, 0 rows affected (0.00 sec)

mysql&gt; SELECT @NEXT_SATURDAY;
+---------------------+
| @NEXT_SATURDAY      |
+---------------------+
| 2015-08-01 21:30:01 |
+---------------------+
1 row in set (0.00 sec)