Sql server 获取最新日期并在今天进行比较
我有一个简单的表,其中有一个日期列。我需要得到最大日期,然后今天比较,看看它是早于还是晚于getdate() 下面是我是如何做到的。有没有更简洁的说法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
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