0

我的数据库表中有CreatedDatedatetime。我想获取CreatedDate当前时差超过 1 小时的行

4

6 回答 6

1
Select * from TableName where (DateDiff(hh,CreatedDate,GetDate())>1
于 2013-09-12T05:40:13.030 回答
1

如果您只关心小时值本身,而不是任何 60 分钟的时间段,@Amit Singh 的回答就有效。

以这种方式使用 DATEDIFF(hh) 的问题是 13:01 和 14:59 的时间仅相隔一个“小时”。

喜欢:

select datediff(hh,'1/1/2001 13:59','1/1/2001 14:01')

我认为这样做可以解决这个问题:

declare @cd datetime='9/12/2013 03:10';

declare @t table(id int,CreatedDate datetime);
insert @t select 1,'9/12/2013 02:50';
insert @t select 2,'9/12/2013 02:05';


select * from @t where @cd>(DateAdd(hh,1,CreatedDate))
于 2013-09-12T06:03:43.660 回答
1

Dan Bellandi 提出了一个有效的观点,但如果日期是否应该相隔 60 分钟真的很重要,那么只需检查它们是否相隔 60 分钟:

SELECT * FROM TableName WHERE DATEDIFF(MINUTE, DateColumnName, GETDATE()) >= 60
于 2013-09-12T06:17:33.413 回答
0
   CREATE TABLE trialforDate
    (
      id INT NULL,
      NAME VARCHAR(20) NULL,
      addeddate DATETIME NULL
    )
INSERT INTO trialforDate VALUES (1,'xxxx',GETDATE())
INSERT INTO trialforDate VALUES (2,'yyyy',GETDATE())
INSERT INTO trialforDate VALUES (1,'zzzz','2013-09-12 11:20:40.533')

    SELECT  *
    FROM    trialforDate
    WHERE   GETDATE() >  DATEADD(HOUR, 1, addeddate) 
于 2013-09-12T07:55:27.563 回答
0

如果您不希望将来创建任何行...

where CreatedDate < dateadd(hour, -1, getdate())
于 2013-09-12T06:34:00.237 回答
-1

C# 代码

DateTime param1= System.DateTime.Now;
DateTime param2= System.DateTime.Now.AddHours(1);

SQL查询:

SELECT * FROM TableName WHERE CreatedDate = param1 AND CreatedDate =param2;
于 2013-09-12T06:00:15.400 回答