如何查找两天之间的数据但不包括周末的数据
Posted
技术标签:
【中文标题】如何查找两天之间的数据但不包括周末的数据【英文标题】:How to find data between two days BUT excluding the data in the weekends 【发布时间】:2014-12-18 07:42:31 【问题描述】:我想查找两个日期之间的数据(例如 8 月份的用户注册),但只查找工作日期间注册的数据,我想排除周末的数据。
注意:我在 *** 上发现了类似的问题,但它们都计算了两个日期之间的天数,不包括周末。我想搜索两个日期之间的数据,但仅限于工作日。我的数据表中有一个时间戳,但我不知道如何进行 SQL 查询来识别时间戳是工作日还是周末。
【问题讨论】:
您标记了 mysql 和 sql-server,请澄清。 【参考方案1】:您可以使用dayofweek
函数排除周末:
SELECT *
FROM users
WHERE register_date BETWEEN '2014-08-01' AND '2014-09-01' AND
DAYOFWEEK(registerdate) NOT IN (1, 7)
但是,请注意,如果您要查找 8 月注册的用户,使用 month
函数而不是 between
运算符可能更容易:
SELECT *
FROM users
WHERE MONTH(register_date) = 8 AND
DAYOFWEEK(registerdate) NOT IN (1, 7)
【讨论】:
DATEOFWEEK 未被识别,因此我使用了 DATEPART(DW,时间戳)不在 (1, 7) 中。什么不在 (1,7) 中是什么意思???dateofweek
不是一个函数——它是**day**ofweek
,正如我所写的(正如你所指出的,这只是datepart
之上的一个语法糖)。 dayofweek
函数返回一个数字表示它在一周中的哪一天 - 星期日是 1,星期六是 7。因此,如果将它们都排除在外,您将排除周末。以上是关于如何查找两天之间的数据但不包括周末的数据的主要内容,如果未能解决你的问题,请参考以下文章