选择所有不是星期三并且只有30天的记录


Select all records that are not wednesday and are only 30 days old

我想知道如何查询数据库以选择不属于特定日期的所有记录。在这种情况下,我想选择所有不是星期三的记录。我在MySQL数据库中的日期栏是"日期",例如2012-09-10。

我的"伪"选择如下:

SELECT * FROM mytable WHERE date NOT IN(SELECT* FROM mytable WHERE date = WED)

有人知道正确的语法吗?

您想要的是WEEKDAY()函数。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_weekday

2=周三

select *
from mytable
where date >= CURDATE() - INTERVAL 30 DAY and
      WEEKDAY(date) <> 2

尝试此查询:

select * from mytable where dayofweek(date)!=4;