sql查询中的表的值

时间:2014-01-28 15:43:32

标签: sql sql-server tsql

大家好,我看到代码时有点困惑。代码是

DECLARE @missingStates varChar(30)
SET @missingStates = Select StateCode FROM StateTable
WHERE GETDATE() NOT Between StateTable.EffectiveDate AND StateTable.ExpirationDate
PRINT 'States Missing Effective Models'
PRINT @missingStates

我只需要知道上述查询中EffectiveDateExpirationDate的目的。

我只需要知道EffectiveDateExpirationDate。这是statetable中的列吗?任何帮助将不胜感激,谢谢:)

1 个答案:

答案 0 :(得分:0)

从该查询中,看起来在StateTable中有一段时间定义的StateCode。例如,

Effective Date     Expiration Date     StateCode
12-01-2013         12-31-2013          SC1312
01-01-2014         01-31-2014          SC1401

现在,查询试图找出对于给定日期(今天= getdate())是否没有日期范围(给定日期不在validdate和expirationdate之间),获取状态代码。

根据我的理解,

  1. 如果数据与我上面假设的一样,那么如果该语句没有“TOP 1”,则查询将失败

  2. 如果数据不是我上面假设的那样,那么查询就可以了。