Sql server 2005 Sql server 2005日期函数
我想知道如何使用getdate& 其他表中的现有日期,其中该表包含多条记录,即我希望 了解5天前、10天前或15天前发布的作业。我已经写了 查询式Sql server 2005 Sql server 2005日期函数,sql-server-2005,tsql,date,Sql Server 2005,Tsql,Date,我想知道如何使用getdate& 其他表中的现有日期,其中该表包含多条记录,即我希望 了解5天前、10天前或15天前发布的作业。我已经写了 查询式 declare @q1 datetime; select cdate from jobposting where cdate like (select cdate) select datediff ( dd, q1, getdate()) 其中q1必须存储jobposting表中的所有日期,但我无法得到正确答案 或者我也试过 select date
declare @q1 datetime;
select cdate from jobposting where cdate like (select cdate)
select datediff ( dd, q1, getdate())
其中q1必须存储jobposting表中的所有日期,但我无法得到正确答案
或者我也试过
select datediff ( dd, select cdate from jobposting, getdate())
提前感谢你 您的问题并不完全清楚,但这应该会返回cdate为5天或更小的所有jobposting行
如果我正确理解你的问题,有两种常见的方法来实现你的要求: 首先,按照Kim的建议使用datediff 另一种方法是计算出5天前的日期,然后将表中的日期与该列进行比较,如果该列已编制索引,则该日期应快于DateDiff:
declare @cutoff datetime;
set @cutoff = dateadd(day, -5, getdate());
select * from jobposting where cdate >= @cutoff;
这应该可以,假设5天@可以要求将天数作为存储过程的参数,以使其灵活:
DECLARE @days int
SET @days = 5
SELECT cdate
FROM jobposting
WHERE datediff(d, cdate, getdate()) <= @days
这将使一切5天或更长。我承认这个问题有点模棱两可,但关于拉克什米想在5天内回到哪一边:@Matt:Agh,我很确定我说对了:编辑,谢谢!是的,这可能更好——首先计算最早的日期,然后依靠索引获得相关匹配+1.+1:我认为这一个正确地回答了这个问题,以及我将如何编码它。
DECLARE @days int
SET @days = 5
SELECT cdate
FROM jobposting
WHERE datediff(d, cdate, getdate()) <= @days