如何在不使用特定日期的情况下计算 SQL 服务器日期范围?

How to calculate in SQL Server range of dates without using specific dates?

我在作业中有这个问题:

Write a SQL query to display all details of transactions that were made at least one week before the pickup date.

我们被指示不要为此分配硬编码(例如,不要查找 table 中的值来确定如何计算)。我们要让代码计算解决方案,而不管输入值如何。

我有一个 Transaction table 和一个 TransactionDate 和一个 PickupDate 列,它们都定义为 YYYY-MM-DD 格式的 date 数据类型.

我是 SQL 服务器的新手,一直在绞尽脑汁思考如何做到这一点。任何正确方向的指导将不胜感激!

您可以简单地使用 where 子句:

SELECT * 
FROM TRANSACTION
WHERE TRANSACTION_DATE < DATEADD(DAY, -7,  PICKUP_DATE);

在这里,我们将TRANSACTION_DATEPICKUP_DATE减去一周进行比较,它将包括取件前一周进行交易的所有记录。