0

データベーステーブルに列がありCreatedDateます。現在の時差が1時間以上datetimeの行を取得したいCreatedDate

4

6 に答える 6

1

Dan Bellandi は有効な点を挙げていますが、日付が 60 分離れている必要があるかどうかが本当に重要な場合は、60 分離れているかどうかを確認してください。

SELECT * FROM TableName WHERE DATEDIFF(MINUTE, DateColumnName, GETDATE()) >= 60
于 2013-09-12T06:17:33.413 に答える
1

@Amit Singhによる回答は、60分の期間ではなく、時間の値自体のみを気にする場合に機能します。

このように DATEDIFF(hh) を使用する際の問題は、13:01 と 14:59 の時間が 1 時間しか離れていないことです。

お気に入り:

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
Select * from TableName where (DateDiff(hh,CreatedDate,GetDate())>1
于 2013-09-12T05:40:13.030 に答える
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 に答える