복붙노트

[SQL] SQL 서버에서 지난 7 일 현재 날짜부터 지난 7 일 데이터를 얻는 방법

SQL

SQL 서버에서 지난 7 일 현재 날짜부터 지난 7 일 데이터를 얻는 방법

안녕 나는 펜타을 사용하여 MySQL의에 SQL 서버에서로드 테이블 A 데이터입니다 데이터를로드는 내가 MySQL을하려면 SQL 서버 A 테이블 만 최근 7 일 동안의 데이터를 얻을 필요가있을 때 SQL 서버 createddate의 열 데이터 형식은 날짜 AND 같다 MySQL의 created_on의 열 데이터 유형은 소인

여기 쿼리 아래 사용하지만 난 5 일 데이터를 얻고있다 이 문제에 제발 도와주세요

select id,    
NewsHeadline as news_headline,    
NewsText as news_text,    
state,    
CreatedDate as created_on      
from News    
WHERE CreatedDate BETWEEN GETDATE()-7 AND GETDATE()
order by createddate DESC

해결법

  1. ==============================

    1.같은 것을보십시오 :

    같은 것을보십시오 :

     SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on
     FROM News 
     WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
    
  2. ==============================

    2.

    select id,    
    NewsHeadline as news_headline,    
    NewsText as news_text,    
    state,    
    CreatedDate as created_on    
    from News    
    WHERE CreatedDate>=DATEADD(DAY,-7,GETDATE())
    
  3. ==============================

    3.난 당신이 지난 7 일 동안 매일 데이터를 가지고 있다고 생각하지 않습니다. 일이 데이터가 존재하지 않은, 분명히 표시되지 않습니다.

    난 당신이 지난 7 일 동안 매일 데이터를 가지고 있다고 생각하지 않습니다. 일이 데이터가 존재하지 않은, 분명히 표시되지 않습니다.

    지난 7 일 동안 매일 데이터를 가지고 이것과 유효성 검사를 시도

    SELECT DISTINCT CreatedDate
    FROM News 
    WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
    ORDER BY CreatedDate
    

    편집 - 귀하의 코멘트에서 복사

    당신은 모든 일에 대한 데이터가 없습니다. 그게 문제가 아니라 쿼리입니다. 쿼리를 실행하면 오늘 - 22 - 만 19, 18, 17, 16 및 15에 대한 데이터를 얻을 것이다. 당신은 20, 21 및 22에 대한 데이터가 없습니다.

    편집 - 당신이 시도 할 수있는 마지막 7 일간 데이터를 얻을하려면, 데이터를 사용할 경우

    select id,    
    NewsHeadline as news_headline,    
    NewsText as news_text,    
    state,    
    CreatedDate as created_on      
    from News    
    WHERE CreatedDate IN (SELECT DISTINCT TOP 7 CreatedDate from News
    order by createddate DESC)
    
  4. ==============================

    4.DATEADD 및 GETDATE 함수는 MySQL 데이터베이스에서 작동하지 않을 수 있습니다. 당신은 MySQL 데이터베이스로 작업 그렇다면, 다음 명령을 사용하면 도움이 될 수 있습니다.

    DATEADD 및 GETDATE 함수는 MySQL 데이터베이스에서 작동하지 않을 수 있습니다. 당신은 MySQL 데이터베이스로 작업 그렇다면, 다음 명령을 사용하면 도움이 될 수 있습니다.

    select id, NewsHeadline as news_headline,    
    NewsText as news_text,    
    state, CreatedDate as created_on    
    from News    
    WHERE CreatedDate>= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
    

    나는 당신을 도울 것입니다 희망

  5. ==============================

    5.이 의지의 도움을 희망

    이 의지의 도움을 희망

    select id,    
    NewsHeadline as news_headline,    
    NewsText as news_text,    
    state,    
    CreatedDate as created_on      
    from News    
    WHERE CreatedDate >= cast(dateadd(day, -7, GETDATE()) as date)
    and CreatedDate < cast(GETDATE()+1 as date) order by CreatedDate desc
    
  6. ==============================

    6.당신처럼 where 절에 DATEADD 기능을 사용할 수 있습니다

    당신처럼 where 절에 DATEADD 기능을 사용할 수 있습니다

    select ...... where Createdate >= DATEADD(day,-7,GETDATE())
    
  7. ==============================

    7.당신이 펜타 DI를 사용하고 싶은 경우에, 당신은 "수정 된 자바 스크립트"단계를 사용하여 기능 아래에 쓸 수 있습니다 :

    당신이 펜타 DI를 사용하고 싶은 경우에, 당신은 "수정 된 자바 스크립트"단계를 사용하여 기능 아래에 쓸 수 있습니다 :

    dateAdd(d1, "d", -7);  // d1 is the current date and "d" is the date identifier
    

    아래 이미지를 확인 : [가정하면 현재의 날짜 : 2014 12월 22일]

    희망이 도움이 :)

  8. ==============================

    8.이것은 나를 위해 일한!

    이것은 나를 위해 일한!

    SELECT * FROM `users` where `created_at` BETWEEN CURDATE()-7 AND CURDATE()
    
  9. from https://stackoverflow.com/questions/27599557/how-to-get-last-7-days-data-from-current-datetime-to-last-7-days-in-sql-server by cc-by-sa and MIT license