Sql server 获取最新日期并在今天进行比较

Sql server 获取最新日期并在今天进行比较,sql-server,tsql,Sql Server,Tsql,我有一个简单的表,其中有一个日期列。我需要得到最大日期,然后今天比较,看看它是早于还是晚于getdate() 下面是我是如何做到的。有没有更简洁的说法 declare @maxDate datetime declare @todayDate datetime with firsttable as ( select max(ColumnA) as MaxColumnA from tbl ) select @maxDate = MaxColumnA from firsttable

我有一个简单的表,其中有一个日期列。我需要得到最大日期,然后今天比较,看看它是早于还是晚于getdate()

下面是我是如何做到的。有没有更简洁的说法

declare @maxDate datetime
declare @todayDate datetime

with firsttable as (
  select max(ColumnA) as MaxColumnA from tbl
  )
  select @maxDate = MaxColumnA from firsttable
  select @todayDate = GETDATE()
  if (@maxDate > @todayDate)
  begin
    select 'variable date is later than today' 
  end
  else
  begin
    select 'variable date is earlier than today'
  end
你就不能用这样的“如果存在”来做吗

if exists (select 1 from tbl where ColumnA > getdate()) begin
   select 'variable date is later than today' 
end else begin
    select 'variable date is earlier than today'
end

尝试:


这是另一个选择:

declare @tbl TABLE 
(
    Id INT PRIMARY KEY IDENTITY(1,1)
    ,Date DATETIME
)

INSERT INTO @tbl
(
    Date
)
VALUES ('3/26/2015'),('3/26/2025')

SELECT TOP 1
    CASE 
        WHEN Date > GETDATE() THEN 'variable date is later than today'
        ELSE 'variable date is earlier than today'
    END
FROM 
    @tbl
ORDER BY 
    Date DESC
declare @tbl TABLE 
(
    Id INT PRIMARY KEY IDENTITY(1,1)
    ,Date DATETIME
)

INSERT INTO @tbl
(
    Date
)
VALUES ('3/26/2015'),('3/26/2025')

SELECT TOP 1
    CASE 
        WHEN Date > GETDATE() THEN 'variable date is later than today'
        ELSE 'variable date is earlier than today'
    END
FROM 
    @tbl
ORDER BY 
    Date DESC