[SQL] 쿼리 SQL에서 날짜를 비교
SQL쿼리 SQL에서 날짜를 비교
나는 모두가 달 11 월에 일어난 날짜와 테이블이 있습니다. 나는이 쿼리를 작성
select id,numbers_from,created_date,amount_numbers,SMS_text
from Test_Table
where
created_date <= '2013-04-12'
그것은 '2013년 4월 12일'일 이전에 발생하기 때문에이 쿼리는 (12 월) 월 11 (11 월)에 일어난 모든 것을 반환해야
그러나 그것은 단지 (2013년 4월 12일를) 이하 04 일 이상에서 발생 가능한 날짜를 반환하는 것
그것은 단지 일 부분을 비교하다고 할 수 있을까요? 아니라 전체 날짜?
이 문제를 어떻게 해결 하는가?
CREATED_DATE 유형 날짜입니다
날짜 형식은 기본적 YYYY-DD-MM입니다
해결법
-
==============================
1.대신 문화 불변 형식으로 인식되는 '2013년 4월 12일'그 의미는 지역 문화에 따라 사용 '20130412'의.
대신 문화 불변 형식으로 인식되는 '2013년 4월 12일'그 의미는 지역 문화에 따라 사용 '20130412'의.
당신이 12 월 4와 비교하려는 경우, 당신은 '20131204'를 작성해야합니다. 당신은 4 월 12과 비교하려는 경우, 당신은 '20130412'를 작성해야합니다.
SQL Server 설명서에서 기사 쓰기 국제 거래-SQL 문은 문화 불변 문을 작성하는 방법을 설명합니다 :
편집하다
당신이 ADO를 사용하고 있기 때문에, 최선의 선택은 쿼리를 매개 변수화 및 날짜 매개 변수로 날짜 값을 전달하는 것입니다. 이 방법을 사용하면 형식 문제를 완전히 피할뿐만 아니라 매개 변수화 된 쿼리의 성능 이점을 얻을 수 있습니다.
최신 정보
리터럴로하여 ISO 8601 형식을 사용하려면 모든 요소를 지정해야합니다. 날짜 설명서의 ISO 8601 섹션에서 인용
-
==============================
2.이 같은 시도
이 같은 시도
select id,numbers_from,created_date,amount_numbers,SMS_text from Test_Table where created_date <= '2013-12-04'
-
==============================
3.당신은 날짜로 변환 한 후, 날짜 만 베일과 비교하는 경우 (안 날짜) 작동합니다
당신은 날짜로 변환 한 후, 날짜 만 베일과 비교하는 경우 (안 날짜) 작동합니다
select id,numbers_from,created_date,amount_numbers,SMS_text from Test_Table where created_date <= convert(date,'2013-04-12',102)
이 변환에 GetDate () 함수를 사용시에도 적용
-
==============================
4.당신은 <넣어 = 그것도 주어진 날짜를 잡을 것입니다. 당신은 <단지로 교체 할 수 있습니다.
당신은 <넣어 = 그것도 주어진 날짜를 잡을 것입니다. 당신은 <단지로 교체 할 수 있습니다.
-
==============================
5.아래의 쿼리를 시도하십시오
아래의 쿼리를 시도하십시오
select id,numbers_from,created_date,amount_numbers,SMS_text from Test_Table where convert(datetime, convert(varchar(10), created_date, 102)) <= convert(datetime,'2013-04-12')
-
==============================
6.이전과 날짜 이후에 "#"을 사용하고 있는지 확인 시스템 날짜 형식의 것으로 봅니다. 어쩌면 " '/ O \'사용 YYYYMMDD O YYYY-MM-DD O MM-DD-YYYY의 O"
이전과 날짜 이후에 "#"을 사용하고 있는지 확인 시스템 날짜 형식의 것으로 봅니다. 어쩌면 " '/ O \'사용 YYYYMMDD O YYYY-MM-DD O MM-DD-YYYY의 O"
전의:
select id,numbers_from,created_date,amount_numbers,SMS_text from Test_Table where created_date <= #2013-04-12#
-
==============================
7.날짜 형식은 yyyy-mm-dd입니다. 위의 쿼리는 기록을 위해 12Apr2013보다 오래된 찾고 그래서
날짜 형식은 yyyy-mm-dd입니다. 위의 쿼리는 기록을 위해 12Apr2013보다 오래된 찾고 그래서
더는 SQL 오류, 날짜 형식은 YYYY-MM-DD로 확인 된 경우, '2013년 4월 30일'로 날짜 문자열을 설정하여 빠른 검사를하지 않는다 제언한다.
from https://stackoverflow.com/questions/19924236/query-comparing-dates-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 내림차순 날짜와 시간에 의해 정렬? (0) | 2020.05.02 |
---|---|
[SQL] A의 조건의 순서는 WHERE 절 MySQL의 성능에 영향을 미칩니 까? (0) | 2020.05.02 |
[SQL] SQL Server 2008의 페이징 방법? (0) | 2020.05.02 |
[SQL] 어떻게 파일에 이미지 필드를 내보내려면? (0) | 2020.05.02 |
[SQL] 당신은 어떻게 최대 절전 모드로 사용자 지정 데이터베이스 함수를 호출 할 수 있습니까? (0) | 2020.05.02 |