Hi, just an odd query.
Background: I'm trying to calculate the Next Thursday and Next Friday dates from today (whenever that is), and return today's date if it's already a Thursday or a Friday.
As a bit of a traditionalist, I've been used to modulo arithmetic always giving a positive answer, so I was hoping to use the following the:
Today Weekday() Next Thursday Next Friday ----- --------- ------------- ----------- Monday 0 add 3 days add 4 days Tuesday 1 add 2 days add 3 days Wednesday 2 add 1 days add 2 days Thursday 3 add 0 days add 1 days Friday 4 add 6 days add 0 days Saturday 5 add 5 days add 6 days Sunday 6 add 4 days add 5 days
As you can see the additional days are cyclic, so given a date d, so for Thrusday say, I thought I would use a calc something like this:
mod(3-weekday(curdate()),7);
But MySQL doesn't seems happy to give back negative numbers:
select d, dayname(d) as day, mod(3-weekday(d),7) as diff from mydates;
+------------+-----------+------+ | d | day | diff | +------------+-----------+------+ | 2004-08-01 | Sunday | -3 | | 2004-08-02 | Monday | 3 | | 2004-08-03 | Tuesday | 2 | | 2004-08-04 | Wednesday | 1 | | 2004-08-05 | Thursday | 0 | | 2004-08-06 | Friday | -1 | | 2004-08-07 | Saturday | -2 | | 2004-08-08 | Sunday | -3 | | 2004-08-09 | Monday | 3 | | 2004-08-10 | Tuesday | 2 | +------------+-----------+------+
I shall persevere and do it using an if(x,y,x) but it seems clumsy, and I wondered if anyone had any betters ideas?
R
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]