比较日期是否在SQL Server中的两个日期之间

时间:2017-10-09 17:18:09

标签: sql-server date-range

如果可能,请在SQL Server中查看:

我有两个具有以下属性的表:

A

AId prm_code   dateTrom      dateTo
1  sql/mn/01   01/01/2017   30/03/2017
2  sql/mn/01   01/04/2017   30/06/2017

B

BId  prm_code    qty   price   tDate   
1    sql/mn/01   10    10      03/01/2017
2    sql/mn/01   1     11      03/01/2017
3    sql/mn/01   12    100     05/01/2017
4    sql/mn/01   5     50      10/02/2017
5    sql/mn/01   20    10      15/03/2017

现在我想创建一个查询来从表 A 获取 AId ,并从表 B 中获取所有其他行,如下所示表 B 的tDate介于表格中的dateFrom和dateTo A

    BId  prm_code    qty   price   tDate     AId
1    sql/mn/01   10    10      03/01/2017    1
2    sql/mn/01   1     11      03/01/2017    1
3    sql/mn/01   12    100     05/01/2017    1
4    sql/mn/01   5     50      10/02/2017    1
5    sql/mn/01   20    10      15/03/2017    1

由于

1 个答案:

答案 0 :(得分:1)

是的,您可以将加入 BETWEEN

一起使用
SELECT B.BId, B.price, B.qty, B.prm_code, B.tDate, A.AId   
FROM [dbo].[TableA] AS A  
JOIN [dbo].[TableB] AS B    
    ON B.tDate BETWEEN A.dateFrom AND A.dateTo