SQL查询其中日期=今天减去7天

Posted

技术标签:

【中文标题】SQL查询其中日期=今天减去7天【英文标题】:SQL Query Where Date = Today Minus 7 Days 【发布时间】:2017-03-06 20:50:23 【问题描述】:

我有一个名为 ExternalHits 的网站点击量 SQL 表。我将 URL 跟踪为 URLx,将访问页面的日期跟踪为 Datex。我每周运行此查询以获取前一周的总点击次数,并且每周我必须手动更改“介于”日期。有什么方法可以更改我的查询,以便“中间”日期类似于 TODAY 和 TODAY-7?我只是不想每周手动更改日期。

    SELECT URLX, COUNT(URLx) AS Count
    FROM ExternalHits
    WHERE datex BETWEEN '02/27/2017' AND '03/05/2017'    
    GROUP BY URLx
    ORDER BY Count DESC; 

【问题讨论】:

如果这是 SQL Server,BETWEEN CONVERT(date, GETDATE()) AND DATEADD(DD, -7, CONVERT(date, GETDATE()))。您有冲突的标签。这是 mysql 还是 Microsoft SQL Server? 由于标签冲突,这几乎是不可能回答的。 mysql 和 sql server 的语法差别很大。 已修复。我的错。它是 SQL Server。 每个答案都建议 BETWEEN 的任何技术原因。命中表永远不会有未来的日期。只是 > DATEADD(DAY, -7, GETDATE()) 有什么问题吗? 【参考方案1】:
declare @lastweek datetime
declare @now datetime
set @now = getdate()
set @lastweek = dateadd(day,-7,@now)

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN @lastweek AND @now
GROUP BY URLx
ORDER BY Count DESC; 

【讨论】:

【参考方案2】:

使用 dateadd 从当前日期删除一周。

datex BETWEEN DATEADD(WEEK,-1,GETDATE()) AND GETDATE()

【讨论】:

【参考方案3】:

你可以用这个从当前日期减去 7:

WHERE datex BETWEEN DATEADD(day, -7, GETDATE()) AND GETDATE()

【讨论】:

【参考方案4】:

使用内置函数:

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW()
GROUP BY URLx
ORDER BY Count DESC; 

【讨论】:

【参考方案5】:

使用以下内容:

WHERE datex BETWEEN GETDATE() AND DATEADD(DAY, -7, GETDATE())

希望这会有所帮助。

【讨论】:

你必须交换Between的参数。【参考方案6】:

您可以使用CURDATE()DATE_SUB() 函数来实现:

SELECT URLX, COUNT(URLx) AS Count
FROM ExternalHits
WHERE datex BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()    
GROUP BY URLx
ORDER BY Count DESC; 

【讨论】:

这是 MySQL 吗?【参考方案7】:
DECLARE @Daysforward int
SELECT @Daysforward = 25 (no of days required)
Select * from table name

where CAST( columnDate AS date) < DATEADD(day,1+@Daysforward,CAST(GETDATE() AS date))

【讨论】:

【参考方案8】:

对于 MariaDB:

WHERE datex BETWEEN DATE_ADD(CURDATE(), INTERVAL -7 DAY) AND CURDATE()

对我有帮助。

【讨论】:

以上是关于SQL查询其中日期=今天减去7天的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server日期查询-SQL查询今天昨天7天内30天(转)

SQL 根据当前日期减去两天选择记录

mysql查询今天昨天近7天近30天本月上一月的SQL语句

减去日期并仅在SQL中显示整数

SQL查询今天昨天7天内30天

SQL查询今天昨天7天内30天 - 转