PostgreSQL的模拟" interval"在T-SQL中

时间:2017-08-24 13:44:16

标签: sql sql-server tsql

这是我在PostgreSQL中的一段代码,但我需要在T-SQL中使用它。如何写这个' interval' 7d'加入两张桌子时的一部分?是否有任何间隔' t-sql中的类比?

  LEFT JOIN UserActivity ua
    ON ua.UserID = ur.UserID
      AND ur.RegistrationDate = ua.UserLoginDate - interval '7d'

2 个答案:

答案 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