sql近三天的数据不包括节假日和双休日
时间: 2024-03-28 14:41:19 浏览: 17
您好!针对您的问题,您可以使用以下 SQL 语句来查询近三天的数据,不包括节假日和双休日:
```
SELECT * FROM your_table
WHERE your_date_column >= DATE_SUB(NOW(), INTERVAL 3 DAY)
AND WEEKDAY(your_date_column) NOT IN (5, 6)
AND your_date_column NOT IN (
SELECT holiday_date FROM your_holiday_table
WHERE holiday_date >= DATE_SUB(NOW(), INTERVAL 3 DAY)
)
```
其中,`your_table` 是您要查询的数据表,`your_date_column` 是您要筛选的日期字段。`your_holiday_table` 是您记录节假日信息的数据表,`holiday_date` 是该表中记录的日期字段。
这条 SQL 语句的意思是,查询 `your_table` 表中在当前时间往前三天(不包括今天)的数据,筛选掉在双休日(周六和周日)发生的数据,以及在 `your_holiday_table` 表中记录的节假日日期(包括周六和周日)发生的数据。
希望这个回答能够帮助您解决问题!如果还有其他问题,请随时提出。
相关问题
sql写出有数据的近三天
假设你要查询名为"table_name"的表中最近三天有数据的记录,可以使用以下 SQL 语句:
```
SELECT * FROM table_name
WHERE create_time >= DATE_SUB(CURDATE(), INTERVAL 2 DAY);
```
其中,`create_time`为记录的创建时间字段,`CURDATE()`返回当前日期,`DATE_SUB()`函数用于减去时间间隔,这里减去了2天,即查询最近三天的数据。
sql有数值的近三天的数据
您好,您的 SQL 查询语句可以参考以下示例:
```sql
SELECT DISTINCT TASK_NO, SUM(amount)
FROM your_table
WHERE MY_CS_STS='02-处理中'
AND ASSIGN_DT BETWEEN DATEADD(day, -3, '2.2') AND '2.2'
GROUP BY TASK_NO;
```
其中,`your_table` 是您要查询的数据表,`amount` 是您要统计的数值列名。这个查询语句会查询自催状态为处理中,分配日期在报告日期向前推三天范围内的数据,并根据任务编号去重累加数值列。
需要注意的是,语句中的日期格式需要根据您的数据库设置进行调整。另外,如果您的数据量较大,上述语句可能会比较耗时,可以考虑根据具体情况进行优化。