TSQL - 在数据库中搜索日期

new*_*bie 1 sql t-sql sql-server

假设我有一个这样的表(它就像所有签名的历史表):

Id  Signature   From          To 
1   S01         2014-01-26    2016-01-26
2   S02         2016-01-26    2016-02-26
3   S03         2016-02-26    2016-04-26
Run Code Online (Sandbox Code Playgroud)

现在我想知道日期中的签名是什么样的2015-03-30

gof*_*fr1 5

用途between:

DECLARE @date date = '2015-03-30'

SELECT [Signature]
FROM YourTable
WHERE @date between [From] and [To]
Run Code Online (Sandbox Code Playgroud)

使用给定的样本数据执行示例:

DECLARE @DateTest TABLE (Id INT, [Signature] VARCHAR(5), [From] DATE, [To] DATE);

INSERT INTO @DateTest (Id, [Signature], [From], [To])
VALUES
(1, 'S01', '2014-01-26', '2016-01-26'),
(2, 'S02', '2016-01-26', '2016-02-26'),
(3, 'S03', '2016-02-26', '2016-04-26');

DECLARE @date DATE = '2015-03-30';

SELECT [Signature]
FROM @DateTest
WHERE @date BETWEEN [From] AND [To]
Run Code Online (Sandbox Code Playgroud)