我的SQL查询列出没有记录的日期

时间:2013-08-19 07:59:53

标签: mysql

我有一个在线日历系统,用于跟踪乐队的演出 - 我想构建一个查询,显示当前没有分配记录的所有星期五和星期六。

例如

如果我在8月23日星期五和8月30日星期五的数据库中有记录(记录是预订的演出),那么查询cirteria将在8月24日星期六输出什么(因为它没有记录)?

Select * from ['giglist'] where ['gigdate'is in 'friday','saturday'] and ['gigdate' doesn't have a record]

我可能会将一周中的日期设置为变量,以便用户可以在任何一天或几天内运行查询。

谢谢,

的Darren

1 个答案:

答案 0 :(得分:0)

如果从您的问题中假设有一个日期类型的字段gigdate,它保存日期信息和单独的记录字段。

然后查询,

select DAYNAME(gigdate), DAYOFMONTH(gigdate), MONTHNAME(gigdate) from giglist where   
DAYNAME(gigdate) in ('Friday', 'Saturday') and
recordfield is NULL;

最好使用单日期类型字段,只存储日期,因为mysql具有强大的日期功能集,可以帮助您满足需求。