[SQL] 두 날짜 사이의 날짜 범위에서 데이터를 선택합니다
SQL두 날짜 사이의 날짜 범위에서 데이터를 선택합니다
나는 테이블 명명 된 Product_Sales을 가지고 있고 그것은 다음과 같은 데이터를 보유
Product_ID | Sold_by | Qty | From_date | To_date
-----------+---------+-----+------------+-----------
3 | 12 | 7 | 2013-01-05 | 2013-01-07
6 | 22 | 14 | 2013-01-06 | 2013-01-10
8 | 11 | 9 | 2013-02-05 | 2013-02-11
지금은 날짜 범위에서 두 날짜 사이의 판매 데이터를 선택하려면 쿼리는 무엇인가?
예를 들어, 나는 2013년 1월 3일에서 2013년 1월 9일에 판매 데이터를 선택합니다.
해결법
-
==============================
1.
당신이 볼 수 있듯이, 일을하는 데는 두 가지 방법이 있습니다 :
물론, 두 번째 방법은 훨씬 더 간단 (사에 대한 두 건)이다.
귀하의 SQL은 다음과 같이 표시됩니다
SELECT * FROM Product_sales WHERE NOT (From_date > @RangeTill OR To_date < @RangeFrom)
-
==============================
2.
SELECT * from Product_sales where (From_date BETWEEN '2013-01-03'AND '2013-01-09') OR (To_date BETWEEN '2013-01-03' AND '2013-01-09') OR (From_date <= '2013-01-03' AND To_date >= '2013-01-09')
당신은 모든 가능성을 포함해야합니다. FROM_DATE 또는 TO_DATE은 날짜 범위 또는 전체 범위를 커버 할 수있는 기록 날짜 사이 일 수있다.
FROM_DATE 또는 TO_DATE 중 하나가 날짜 사이, 또는 FROM_DATE는 시작 날짜보다 작 및 TO_DATE가 종료 날짜보다 큰 경우; 다음이 행이 반환해야합니다.
-
==============================
3.범위 사이의 날짜를 얻기 위해 쿼리를 다음보십시오 :
범위 사이의 날짜를 얻기 위해 쿼리를 다음보십시오 :
SELECT * FROM Product_sales WHERE From_date >= '2013-01-03' AND To_date <= '2013-01-09'
-
==============================
4.
SELECT * FROM Product_sales WHERE From_date between '2013-01-03' AND '2013-01-09'
-
==============================
5.이것은 당신이 찾고있는 모든 조건을 설명합니다.
이것은 당신이 찾고있는 모든 조건을 설명합니다.
SELECT * from Product_sales where (From_date <= '2013-01-09' AND To_date >= '2013-01-01')
-
==============================
6.
SELECT * FROM Product_sales WHERE ( From_date >= '2013-08-19' AND To_date <= '2013-08-23' ) OR ( To_date >= '2013-08-19' AND From_date <= '2013-08-23' )
-
==============================
7.시도하십시오 :
시도하십시오 :
DECLARE @FrmDt DATETIME, @ToDt DATETIME SELECT @FrmDt='2013-01-03', @ToDt='2013-01-09' SELECT * FROM Product_sales WHERE (@FrmDt BETWEEN From_date AND To_date) OR (@ToDt BETWEEN From_date AND To_date)
-
==============================
8.
select * from table where ( (table.EndDate > '2013-01-05') and (table.StartDate < '2013-01-07' ) )
-
==============================
9.그냥 내 2 센트, 나는 당신에 관계없이 서버의 국가 별 설정의 원하는 것을 알 DB 서버로 "DD-MMM-YYYY"형식 안전한를 사용하여 찾을 수 있습니다. 그렇지 않으면 당신은 잠재적으로 YYYY-DD-mm로서의 일 지역 설정이 서버에 문제로 실행할 수 있습니다 (어떠한 이유)
그냥 내 2 센트, 나는 당신에 관계없이 서버의 국가 별 설정의 원하는 것을 알 DB 서버로 "DD-MMM-YYYY"형식 안전한를 사용하여 찾을 수 있습니다. 그렇지 않으면 당신은 잠재적으로 YYYY-DD-mm로서의 일 지역 설정이 서버에 문제로 실행할 수 있습니다 (어떠한 이유)
그러므로:
SELECT * FROM Product_sales WHERE From_date >= '03-Jan-2013' AND To_date <= '09-Jan-2013'
그것은 항상 나를 위해 잘 작동 것 ;-)
-
==============================
10.SQL_Server_2008 R2에이 작업
SQL_Server_2008 R2에이 작업
Select * from Product_sales where From_date between '2013-01-03' and '2013-01-09'
-
==============================
11.이 쿼리는 당신을 도울 것입니다 :
이 쿼리는 당신을 도울 것입니다 :
select * from XXXX where datepart(YYYY,create_date)>=2013 and DATEPART(YYYY,create_date)<=2014
-
==============================
12.
SELECT NULL FROM HRMTable hm(NOLOCK) WHERE hm.EmployeeID = 123 AND ( ( CAST(@Fromdate AS date) BETWEEN CAST(hm.FromDate AS date) AND CAST(hm.ToDate AS date) ) OR ( CAST(@Todate AS date) BETWEEN CAST(hm.FromDate AS date) AND CAST(hm.ToDate AS date) ) ) )
-
==============================
13.이 쿼리를 확인, 내가 어떤 예약 날짜와 무릎에 걸쳐 날짜 체크 여부를 확인하기 위해이 쿼리를 생성
이 쿼리를 확인, 내가 어떤 예약 날짜와 무릎에 걸쳐 날짜 체크 여부를 확인하기 위해이 쿼리를 생성
SELECT * FROM tbl_ReservedRooms WHERE NOT ('@checkindate' NOT BETWEEN fromdate AND todate AND '@checkoutdate' NOT BETWEEN fromdate AND todate)
이 후 중복되지 상세 정보를 얻을 쿼리에서 'NOT'제거, 중복되는 내용을 retrun합니다
-
==============================
14.당신은 또한 다음과 같은 조각을 사용하여 시도 할 수 있습니다 :
당신은 또한 다음과 같은 조각을 사용하여 시도 할 수 있습니다 :
select * from Product_sales where From_date >= '2013-01-03' and game_date <= '2013-01-09'
-
==============================
15.이 두 날짜 사이의 날짜 범위에서 선택 데이터를 찾기 위해이 쿼리를 사용하여 쉽게
이 두 날짜 사이의 날짜 범위에서 선택 데이터를 찾기 위해이 쿼리를 사용하여 쉽게
select * from tabblename WHERE (datecolumn BETWEEN '2018-04-01' AND '2018-04-5')
-
==============================
16.당신이 숫자 값을 비교처럼 당신은 SQL에서 날짜를 비교해야
당신이 숫자 값을 비교처럼 당신은 SQL에서 날짜를 비교해야
SELECT * FROM Product_sales WHERE From_date >= '2013-01-01' AND To_date <= '2013-01-20'
-
==============================
17.여기에 8 월 한 달 동안 실행 된 모든 제품 판매를 찾을 수있는 쿼리입니다
여기에 8 월 한 달 동안 실행 된 모든 제품 판매를 찾을 수있는 쿼리입니다
또한 쿼리를 확인하는 case 문을 추가합니다
SELECT start_date, end_date, CASE WHEN start_date <= '2015-08-31' THEN 'true' ELSE 'false' END AS started_before_end_of_month, CASE WHEN NOT end_date <= '2015-08-01' THEN 'true' ELSE 'false' END AS did_not_end_before_begining_of_month FROM product_sales WHERE start_date <= '2015-08-31' AND end_date >= '2015-08-01' ORDER BY start_date;
-
==============================
18.
DECLARE @monthfrom int=null, @yearfrom int=null, @monthto int=null, @yearto int=null, @firstdate DATE=null, @lastdate DATE=null SELECT @firstdate=DATEADD(month,@monthfrom-1,DATEADD(year,@yearfrom-1900,0)) /*Setting First Date using From Month & Year*/ SELECT @lastdate= DATEADD(day,-1,DATEADD(month,@monthto,DATEADD(year,@yearto-1900,0)))/*Setting Last Date using From Month & Year*/ SELECT * FROM tbl_Record WHERE (DATEADD(yy, Year - 1900, DATEADD(m, Month - 1, 1 - 1)) BETWEEN CONVERT(DATETIME, @firstdate, 102) AND CONVERT(DATETIME, @lastdate, 102))
-
==============================
19.이것은 당신이 원하는 것을 찾기 위해이 쿼리를 사용하여 간단합니다.
이것은 당신이 원하는 것을 찾기 위해이 쿼리를 사용하여 간단합니다.
select * from Product_Sales where From_date<='2018-04-11' and To_date>='2018-04-11'
from https://stackoverflow.com/questions/14208958/select-data-from-date-range-between-two-dates by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 데이터베이스 (1)를 사용하여 한 번에 적 있나요 : 1 개 관계가 의미가? (0) | 2020.04.09 |
---|---|
[SQL] SQL - 대다 테이블의 기본 키 (0) | 2020.04.09 |
[SQL] 기본 키 또는 고유 색인? (0) | 2020.04.09 |
[SQL] 저장 프로 시저를 작성하기 전에 존재하는지 확인하는 방법 (0) | 2020.04.09 |
[SQL] SQL에서 VARCHAR을 통해 CHAR를 선택하는 사용 사례는 무엇입니까? (0) | 2020.04.09 |