2010-06-08 4 views
9

레코드를 만들 때 myTime이라는 이름의 smalldatetime 필드가 있습니다. 지난 1 시간 이내에 생성 된 레코드를 선택하는 구문이 필요합니다. 지난 시간에 생성 된 레코드 찾기

  • 가 시간 부분에 보이는
  • 를 시작으로 MYTIME에서 데이터의 시간 부분에 보이는 datediff

    1. 시간 동안 보이는

      and DATEDIFF("hh", datePart(hh, myTime), DatePart(hh, GETDATE()) < 1 
      

      :

      는 것이라고 생각 이제 끝내기 위해

    2. 은 ' 1 '

    내가 얻는 결과는 분명히 길이다. 그러나 나는 이유를 모른다.

    추가 : 두 답변이 본질적으로 일치하기 때문에 이것이 나를 위해 아무것도 반환하지 않는다는 사실은 내 테이블이 어떻게 생성되었는지 추적해야합니다. LogParser가 IIS 로그에 대해 작업하고 두 개의 다른 필드에 날짜/시간 정보가 분산되어 있습니다. Date은 오늘의 기록이 모두 보이는 날짜 정보 만 보유합니다 : 2010-06-08 00:00:00.000이고 시간 필드는 다음과 같습니다 : 2010-01-01 15:02:51.000 (모든 기록의 날짜 부분은 01 01입니다).

  • 답변

    25

    사용이 :

    SELECT * 
    FROM Whatever 
    WHERE myTime > DATEADD(HOUR, -1, GETDATE()) 
    
    +1

    나보다 6 초 앞서 있습니다. +1 –

    2

    사용 YourTable SELECT * FROM WHERE YourDateTime> = DATEADD (HH, -1, GETDATE())

    당신은 전체 시간은 다음 사용하려는 경우
    2

    ...

    WHERE myTime > DATEADD(HOUR, -1, GETDATE()) 비록
    --This Hour 
    SELECT * 
    FROM Whatever 
    WHERE myTime >= dateadd(hour, datediff(hour, 0, GETDATE()), 0) 
    
    --Last Hour 
    SELECT * 
    FROM Whatever 
    WHERE myTime < dateadd(hour, datediff(hour, 0, GETDATE()), 0) AND myTime >= dateadd(hour, datediff(hour, 0, DATEADD(HOUR, -1, GETDATE())), 0) 
    
    --Hour before last 
    SELECT * 
    FROM Whatever 
    WHERE myTime < dateadd(hour, datediff(hour, 0, DATEADD(HOUR, -1, GETDATE())), 0) AND myTime >= dateadd(hour, datediff(hour, 0, DATEADD(HOUR, -2, GETDATE())), 0) 
    
    0

    는 위의 코드는 전체 일을 반환 내 SQL 서버에서 날짜의 feild 이상한 방식으로 구성되어 어떤 이상한 이유로,하지 나타나서을 위해, 나를 위해 일해야 시간은 Now 이전입니다. (HH, 7, GETDATE()가있다 이제 플러스 7 시간 (이는 오는

    WHERE myTime BETWEEN DATEADD(HH, 6, GETDATE()) AND DATEADD(HH, 7, GETDATE()) 
    

    그래서 DATEADD : 몇 가지 문제 해결 후 내 쿼리는 다음과 같습니다 있도록 GETDATE()가 7 시간 빠른 현재 시간 실제로 것을 발견 시간을 빼고 그 시간 블록 내의 모든 행을 뺍니다. 같은 문제가있는 사람을 돕기 위해 게시해야한다고 생각했습니다.

    +0

    당신은 어떤 서버가 날짜를 저장했는지를보고 더 좋은 시간대 설정을 데이터베이스 서버와 비교하는 것이 더 나을 것입니다. 당신의 코드는 다른 시간대에 대해 설정되는 한 서버에 의존하기 때문에 약해집니다. 오보다 그. – NotMe

    관련 문제