这是我在PostgreSQL中的一段代码,但我需要在T-SQL中使用它。如何写这个' interval' 7d'加入两张桌子时的一部分?是否有任何间隔' t-sql中的类比?
LEFT JOIN UserActivity ua
ON ua.UserID = ur.UserID
AND ur.RegistrationDate = ua.UserLoginDate - interval '7d'
答案 0 :(得分:4)
你会使用:
LEFT JOIN
UserActivity ua
ON ua.UserID = ur.UserID AND
ur.RegistrationDate = DATEADD(day, -7, ua.UserLoginDate)
注意:在两个数据库中,这都假定列是没有时间组件的日期。
SQL Server中(目前)没有与Postgres和其他数据库中的interval
功能完全匹配的功能。但是,dateadd()
,datediff()
和datepart()
的基本功能通常就足够了。
答案 1 :(得分:0)
我想你想用这样的东西替换最后一行:
AND DATEDIFF(d, ur.RegistrationDate, ua.UserLoginDate) = 7