[SQL] SQL에서 날짜별로 필터
SQLSQL에서 날짜별로 필터
나는 (날짜 시간) 날짜에 대한 내 테이블에 열이 나는 말한다 WHERE 절을 만들려고하고 WHERE 2012년 12월 11일 및 2012년 12월 13일 간의 날짜
날짜 열 샘플 2012-05-24 값 = 00 : 38 : 40.260
나는 WHERE 말하고 싶은 MM-DD-YYYY 및 MM-DD-YYYY 간의 날짜.
나는 일을 시도
WHERE dates BETWEEN ((convert(nvarchar(10), dates,110) = '2012-12-12') AND (convert(nvarchar(10), dates,110) = '2012-12-12'))
하지만 작동하지 않습니다. "= 가까운 잘못된 구문"
도와주세요
편집하다:
다양한 옵션과 설명들에 대한 감사합니다. 이 RichardTheKiwi의 옵션 @ 작업을 얻었다.
해결법
-
==============================
1.날짜 열 시간 정보를 포함하지 않는 경우에, 당신은 멀리 얻을 수 있습니다 :
날짜 열 시간 정보를 포함하지 않는 경우에, 당신은 멀리 얻을 수 있습니다 :
WHERE dates BETWEEN '20121211' and '20121213'
그러나 날짜 지정된 열이 날짜 실제로, 당신이 원하는
WHERE dates >= '20121211' AND dates < '20121214' -- i.e. 00:00 of the next day
SARGability (좋은 성능을 위해 사용 인덱스 기능)을 유지 SQL 서버 2008 이후에 대한 또 다른 옵션은 다음과 같습니다
WHERE CAST(dates as date) BETWEEN '20121211' and '20121213'
참고 : 항상 명확한 날짜 리터럴 SQL Server와 ISO-8601 YYYYMMDD 형식을 사용합니다.
-
==============================
2.
WHERE dates BETWEEN (convert(datetime, '2012-12-12',110) AND (convert(datetime, '2012-12-12',110))
-
==============================
3.그럼 당신은 잘못 NVARCHAR와 날짜를 비교하기 위해 노력하고 있습니다. 해야한다
그럼 당신은 잘못 NVARCHAR와 날짜를 비교하기 위해 노력하고 있습니다. 해야한다
Where dates between date1 And date2 -- both date1 & date2 should be date/datetime
날짜 1의 경우, DATE2 문자열; 서버는 필터링하기 전에 날짜 형식으로 변환됩니다.
from https://stackoverflow.com/questions/13869640/filter-by-dates-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] ExecuteScalar는 (); SCOPE_IDENTITY ()로 생성 "System.InvalidCastException : 지정한 캐스트가 잘못되었습니다"[중복] (0) | 2020.07.10 |
---|---|
[SQL] 검사 시간은 두 번 (시간 데이터 형식) 사이 인 경우 (0) | 2020.07.10 |
[SQL] 오라클 IN 절에서 LIKE를 사용하여 (0) | 2020.07.10 |
[SQL] 백업 SQL 스키마 만? (0) | 2020.07.10 |
[SQL] 'HAVING 절'알 수없는 열 (0) | 2020.07.10 |