一尘不染

如何获取SQL中的最新日期?

sql

我想做一个SQL查询,从日期列中获取今天的日期和最近的日期。因此,如果我的数据库中有三个记录,这些记录具有以下日期:

  • 2012年3月8日
  • 2012年3月2日
  • 2011年12月8日

我希望SQL查询返回2012年3月8日和2012年3月2日(最近的日期)的所有记录。我怎样才能做到这一点?

我可以使用以下方法来约会今天的日期:

CONVERT( varchar(100), DATEADD( DAY, 0, getdate() ), 111)

谢谢你

编辑:谢谢大家。我还有一个问题。我创建了两个视图:

create view with top dates
CREATE VIEW topDates AS
select DISTINCT TOP 3 replace(CONVERT(VARCHAR(20),date,111),'-','/') AS dates from     CSAResults.dbo.Details

create view dateTwo
select *
from (select ROW_NUMBER() over (order by dates desc) as srNo, dates
    from topDates)
    AS employee
    WHERE srNo=2

现在我想从数据库中选择*,其中列等于视图“ dateTwo”中的“ dates”列

select buildNumber
from CSAResults.dbo.Details
where buildNumber LIKE '%Main '+ (SELECT dates FROM dateTwo) + '%'

但这什么也没有返回。

谢谢


阅读 1822

收藏
2021-05-16

共1个答案

一尘不染

您可以执行以下操作:

select date
from yourtable
where 
(
    date = Convert(varchar(10), getdate(), 101)
    OR
    date IN (SELECT Max(date) 
                FROM yourtable
                WHERE date!= Convert(varchar(10), getdate(), 101))
)
2021-05-16