编写sql查询表中周四有而周二没有的数据
时间: 2023-07-16 13:14:57 浏览: 141
假设表名为`my_table`,字段名为`date`,可以使用以下SQL查询语句来查询表中周四有而周二没有的数据:
```
SELECT *
FROM my_table
WHERE DATEPART(weekday, date) = 5 -- 周四
AND DATEPART(weekday, DATEADD(day, -2, date)) = 3 -- 周二
```
该查询语句使用`DATEPART`函数获取日期的星期几,其中1表示周日,2表示周一,以此类推。使用`DATEADD`函数可以在日期上增加或减少指定的天数。因此,`DATEADD(day, -2, date)`表示将日期减少2天,即得到该日期的前一天(即周二),然后再用`DATEPART`函数获取该日期的星期几,如果为3则表示该日期是周二。最终,通过`WHERE`子句来筛选出周四有而周二没有的数据。
相关问题
编写sql查询表中当天有而前天没有的数据
如果表中有一个日期列,可以使用以下 SQL 语句查询当天有而前天没有的数据:
```sql
SELECT *
FROM table_name
WHERE DATE(date_column) = CURDATE()
AND DATE(date_column) NOT IN (
SELECT DATE(date_column)
FROM table_name
WHERE DATE(date_column) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
);
```
这个查询语句首先选择日期列等于今天的所有行,然后从这个结果集中排除日期列等于昨天的任何行。请确保替换 `table_name` 和 `date_column` 为你的表名和日期列名。
编写sql查询今天有而昨天没有的数据
假设有一个名为`table_name`的数据表,其中包含日期列`date_column`和其他列`other_column`,可以使用以下SQL查询语句来查找今天有而昨天没有的数据:
```
SELECT t1.*
FROM table_name t1
LEFT JOIN table_name t2 ON t1.other_column = t2.other_column AND t2.date_column = DATEADD(day, -1, GETDATE())
WHERE t1.date_column = GETDATE() AND t2.date_column IS NULL
```
这个查询使用了自身连接(self-join),将今天和昨天的数据表连接在一起,并筛选出今天有而昨天没有的数据。
阅读全文