[SQL] MySQL의 쿼리는 지난 주에서 데이터를 선택하려면?
SQLMySQL의 쿼리는 지난 주에서 데이터를 선택하려면?
안녕 나는 날짜 필드와 다른 정보가있는 테이블이 있습니다. 나는 (주 일요일부터 시작), 지난 주에서 모든 항목을 선택합니다.
표 값 :
id date
2 2011-05-14 09:17:25
5 2011-05-16 09:17:25
6 2011-05-17 09:17:25
8 2011-05-20 09:17:25
15 2011-05-22 09:17:25
내가 지난 주부터 모든 ID를 선택하려면, 예상 출력은 5, 6, 8입니다. (ID이 없습니다 지난 주, 그리고 ID (15)는 현재 주에 있습니다.)
어떻게 작성하고 같은에 대한 SQL 쿼리합니다.
해결법
-
==============================
1.
SELECT id FROM tbl WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY
-
==============================
2.
select id from tbname where date between date_sub(now(),INTERVAL 1 WEEK) and now();
-
==============================
3.
SELECT id FROM table1 WHERE YEARWEEK(date) = YEARWEEK(NOW() - INTERVAL 1 WEEK)
나는 (오늘 7 일 전 반대) 이전에 전체 달력 주에 돌아가 특히 YEARWEEK 기능을 사용합니다. YEARWEEK 또한 일주일의 시작을 설정하거나 올해의 첫 번째 / 마지막 주 처리하는 방법을 결정하는 두 번째 인수를 할 수 있습니다. YEARWEEK은 하나의 변수에 앞으로 / 뒤로 이동 주의 수를 유지하기 위해 다음을 수행 할 수 있습니다, 이전 / 미래 년에서 같은 주 번호를 포함하지 않습니다, 그리고 여기에 다른 답변의 대부분보다 훨씬 짧다.
-
==============================
4.단순화 된 형태 :
단순화 된 형태 :
지난 주 데이터 :
SELECT id FROM tbl WHERE WEEK (date) = WEEK( current_date ) - 1 AND YEAR( date) = YEAR( current_date );
2 주 전 데이터 :
SELECT id FROM tbl WHERE WEEK (date) = WEEK( current_date ) - 2 AND YEAR( date) = YEAR( current_date );
SQL 바이올린
http://sqlfiddle.com/#!8/6fa6e/2
-
==============================
5.당신은 PHP에서 계산을 한 다음 쿼리에 추가 할 수 있습니다 :
당신은 PHP에서 계산을 한 다음 쿼리에 추가 할 수 있습니다 :
$date = date('Y-m-d H:i:s',time()-(7*86400)); // 7 days ago $sql = "SELECT * FROM table WHERE date <='$date' ";
지금은 일주일 전에의 날짜를 줄 것이다
-
==============================
6.아마도 가장 간단한 방법은 다음과 같습니다
아마도 가장 간단한 방법은 다음과 같습니다
SELECT id FROM table WHERE date >= current_date - 7
팔일의 경우 (예 : 월요일 - 월요일)
-
==============================
7.당신은 당신의 미들웨어 일요일 인 오늘 어떤 일 기준으로 CALC해야합니다 (등 PHP, 파이썬,.) *
당신은 당신의 미들웨어 일요일 인 오늘 어떤 일 기준으로 CALC해야합니다 (등 PHP, 파이썬,.) *
그때,
select id from table where date >= "$sunday-date" + interval 7 DAY
-
==============================
8.이 한 줄에있을 수 있습니다 :
이 한 줄에있을 수 있습니다 :
SELECT * FROM table WHERE Date BETWEEN (NOW() - INTERVAL 7 DAY) AND NOW()
-
==============================
9.간단한 방법이 하나가 될 수 있습니다, 이것은 내 코드에서 실제 예이며 완벽하게 작동합니다 :
간단한 방법이 하나가 될 수 있습니다, 이것은 내 코드에서 실제 예이며 완벽하게 작동합니다 :
where("actions.created_at >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK)")
-
==============================
10.영업 같은 사람 ... '지난 주'요구 사항과 어디를 찾고 있었다 (그러나 만족 답변을 아무도 없음) 마지막 주입니다.
영업 같은 사람 ... '지난 주'요구 사항과 어디를 찾고 있었다 (그러나 만족 답변을 아무도 없음) 마지막 주입니다.
오늘이 화요일 인 경우, 지난 주 AGO 일요일 주일 AGO 월요일 일주일입니다.
그래서:
WHERE WEEK(yourdate) = WEEK(NOW()) - 1
또는 ISO의 주 :
WHERE WEEK(yourdate, 3) = WEEK(NOW(), 3) - 1
-
==============================
11.위의 쿼리는 작동하지 않습니다. 우리는 열 값을 CAST 수없는 경우 where 절을 한 후, 그것은 작동하지 않습니다. 당신은 열 값을 캐스팅해야한다.
위의 쿼리는 작동하지 않습니다. 우리는 열 값을 CAST 수없는 경우 where 절을 한 후, 그것은 작동하지 않습니다. 당신은 열 값을 캐스팅해야한다.
예 :. :
SELECT..... WHERE CAST( yourDateColumn AS DATE ) > DATEADD( DAY, -7, CAST( GETDATE() AS DATE )
-
==============================
12.
SELECT id FROM tb1 WHERE YEARWEEK (date) = YEARWEEK( current_date -interval 1 week )
-
==============================
13.나는 종종뿐만 아니라 빠른 "지난 주"체크를하고 다음이 오늘 나를 위해 잘 작동 경향이 포함되어 있습니다.
나는 종종뿐만 아니라 빠른 "지난 주"체크를하고 다음이 오늘 나를 위해 잘 작동 경향이 포함되어 있습니다.
DECLARE @StartDate DATETIME DECLARE @EndDate DATETIME SET @StartDate = Getdate() - 7 /* Seven Days Earlier */ SET @EndDate = Getdate() /* Now */ SELECT id FROM mytable WHERE date BETWEEN @StartDate AND @Enddate
당신이 오늘을 포함하지하려면 단지 @EndDate에서 여분의 일을 뺍니다. 나는이 두 변수 오늘의 GET을 선택하는 경우
나는 일요일 일요일 원한다면 나는 다음있을 것입니다.
SET @StartDate = Getdate() - 8 /* Eight Days Earlier */ SET @EndDate = Getdate() - 1 /* Yesterday */
-
==============================
14.
WHERE yourDateColumn > DATEADD(DAY, -7, GETDATE()) ;
-
==============================
15.당신은 또한 쉬운 방법을 사용할 수 있습니다
당신은 또한 쉬운 방법을 사용할 수 있습니다
SELECT * FROM inventory WHERE YEARWEEK(`modify`, 1) = YEARWEEK(CURDATE(), 1)
-
==============================
16.나는 일요일 주 시작이 사용 :
나는 일요일 주 시작이 사용 :
SELECT id FROM tbl WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+5 DAY AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-2 DAY
-
==============================
17.지난 달, 작년, 최근 15 일 같은 더 많은 예를 들어, 지난 3 개월 동안
지난 달, 작년, 최근 15 일 같은 더 많은 예를 들어, 지난 3 개월 동안
지난 주 기록을 가져 오기
MySQL 데이터베이스 테이블에서 지난 주 기록을 가져 오는에 대한 MySQL의 아래 쿼리를 사용.
SELECT name, created_at FROM employees WHERE YEARWEEK(`created_at`, 1) = YEARWEEK( CURDATE() - INTERVAL 1 WEEK, 1)
-
==============================
18.이 시도:
이 시도:
Declare @Daytype varchar(15), @StartDate datetime, @EndDate datetime set @Daytype = datename(dw, getdate()) if @Daytype= 'Monday' begin set @StartDate = getdate()-7 set @EndDate = getdate()-1 end else if @Daytype = 'Tuesday' begin set @StartDate = getdate()-8 set @EndDate = getdate()-2 end Else if @Daytype = 'Wednesday' begin set @StartDate = getdate()-9 set @EndDate = getdate()-3 end Else if @Daytype = 'Thursday' begin set @StartDate = getdate()-10 set @EndDate = getdate()-4 end Else if @Daytype = 'Friday' begin set @StartDate = getdate()-11 set @EndDate = getdate()-5 end Else if @Daytype = 'Saturday' begin set @StartDate = getdate()-12 set @EndDate = getdate()-6 end Else if @Daytype = 'Sunday' begin set @StartDate = getdate()-13 set @EndDate = getdate()-7 end select @StartDate,@EndDate
-
==============================
19.이미 날짜를 알고 있다면 당신은 간단하게 다음과 같이 사이에 사용할 수 있습니다 :
이미 날짜를 알고 있다면 당신은 간단하게 다음과 같이 사이에 사용할 수 있습니다 :
SELECT id FROM `Mytable` where MyDate BETWEEN "2011-05-15" AND "2011-05-21"
from https://stackoverflow.com/questions/6089960/mysql-query-to-select-data-from-last-week by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 사용자와 SQL Server에서 로그인의 차이 (0) | 2020.03.28 |
---|---|
[SQL] SQL 서버에 대한 변수에 동적 SQL의 결과를 얻기 (0) | 2020.03.28 |
[SQL] SQL 쿼리 : 최신 N 제외하고는 테이블에서 모든 기록을 삭제 하시겠습니까? (0) | 2020.03.28 |
[SQL] SQL은 대 SQL 하위 쿼리 (성능)에 합류? (0) | 2020.03.28 |
[SQL] 테이블이 사용하지 않고있는 경우 "선택"체크 (0) | 2020.03.28 |