Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数中的SQL函数和查询中的公式_Sql_Sql Server - Fatal编程技术网

函数中的SQL函数和查询中的公式

函数中的SQL函数和查询中的公式,sql,sql-server,Sql,Sql Server,我想让每一个在过去30天内登录的用户,并检查其前7天的活动日期映射他们登录后的活动Day是用户登录后经过的天数 我想要这样的东西 SELECT UserID, Date FROM Web WHERE (Day < = 30) and ( CONVERT(date, Date) - CONVERT(date,CURDATE()) - Day) <= 7 ) ORDER BY UserID asc, Date desc; 选择用户ID、日期 从网络 其中(Day

我想让每一个在过去30天内登录的用户,并检查其前7天的活动<代码>日期映射他们登录后的活动
Day
是用户登录后经过的天数

我想要这样的东西

SELECT UserID, Date
FROM Web
WHERE (Day < = 30) and ( CONVERT(date, Date) - CONVERT(date,CURDATE()) - Day) <= 7 )
ORDER BY UserID asc, Date desc;
选择用户ID、日期
从网络

其中(Day<=30)和(CONVERT(date,date)-CONVERT(date,CURDATE())-Day)这应该可以做到:

SELECT UserID, Date
FROM Web
WHERE (Day < = 30) and DATEDIFF(DAY, DATEADD(DAY, -[Day], GETDATE()), [Date]) <= 7
ORDER BY UserID asc, Date desc;
选择用户ID、日期
从网络

其中(Day<=30)和DATEDIFF(Day,DATEADD(Day,-[Day],GETDATE()),[Date])标记所使用的dbms,其中有一些特定于产品的SQL…@jarlh在本例中,MS SQL Server请提供示例数据和所需结果。我看不到您的查询和描述之间的关系。这会给我过去7天的日期,我需要的是用户登录后7天的日期。它由
Day
表示,仅
Day
计算自登录以来已过去的天数。可以在DATEDIFF内使用
DATEADD(Day,-Day,GETDATE())
啊,我明白了,对不起,我误解了要求。我仍然不太明白day和date值代表什么,您能进一步解释一下吗?因此,
day
表示用户注册服务的时间。所以我只想要上个月注册的人,所以Day
Date
是一项活动。我想要的是跟踪用户登录7天后的活动,并且只跟踪在上个月内登录的用户。
SELECT UserID, Date
FROM Web
WHERE (Day < = 30) and DATEDIFF(DAY, DATEADD(DAY, -[Day], GETDATE()), [Date]) <= 7
ORDER BY UserID asc, Date desc;