大家好,我看到代码时有点困惑。代码是
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
我只需要知道上述查询中EffectiveDate
和ExpirationDate
的目的。
我只需要知道EffectiveDate
和ExpirationDate
。这是statetable
中的列吗?任何帮助将不胜感激,谢谢:)
答案 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之间),获取状态代码。
根据我的理解,
如果数据与我上面假设的一样,那么如果该语句没有“TOP 1”,则查询将失败
如果数据不是我上面假设的那样,那么查询就可以了。