【发布时间】:2012-03-09 05:35:14
【问题描述】:
我想做一个 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”中的“日期”列
select buildNumber
from CSAResults.dbo.Details
where buildNumber LIKE '%Main '+ (SELECT dates FROM dateTwo) + '%'
但这不会返回任何内容。
谢谢
【问题讨论】:
-
如果表格中没有今天的日期怎么办?然后只返回 1 行?
-
谢谢大家。我有它来选择日期。如果有人可以帮助我解决我的下一个问题,我对我的帖子进行了编辑:)
-
下次最好发布一个单独的问题,但我已经发布了另一个答案
-
@user974873 您应该将您的编辑作为另一个问题发布。