복붙노트

[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. ==============================

    1.대신 문화 불변 형식으로 인식되는 '2013년 4월 12일'그 의미는 지역 문화에 따라 사용 '20130412'의.

    대신 문화 불변 형식으로 인식되는 '2013년 4월 12일'그 의미는 지역 문화에 따라 사용 '20130412'의.

    당신이 12 월 4와 비교하려는 경우, 당신은 '20131204'를 작성해야합니다. 당신은 4 월 12과 비교하려는 경우, 당신은 '20130412'를 작성해야합니다.

    SQL Server 설명서에서 기사 쓰기 국제 거래-SQL 문은 문화 불변 문을 작성하는 방법을 설명합니다 :

    편집하다

    당신이 ADO를 사용하고 있기 때문에, 최선의 선택은 쿼리를 매개 변수화 및 날짜 매개 변수로 날짜 값을 전달하는 것입니다. 이 방법을 사용하면 형식 문제를 완전히 피할뿐만 아니라 매개 변수화 된 쿼리의 성능 이점을 얻을 수 있습니다.

    최신 정보

    리터럴로하여 ISO 8601 형식을 사용하려면 모든 요소를 ​​지정해야합니다. 날짜 설명서의 ISO 8601 섹션에서 인용

  2. ==============================

    2.이 같은 시도

    이 같은 시도

    select id,numbers_from,created_date,amount_numbers,SMS_text 
    from Test_Table
    where 
    created_date <= '2013-12-04'
    
  3. ==============================

    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. ==============================

    4.당신은 <넣어 = 그것도 주어진 날짜를 잡을 것입니다. 당신은 <단지로 교체 할 수 있습니다.

    당신은 <넣어 = 그것도 주어진 날짜를 잡을 것입니다. 당신은 <단지로 교체 할 수 있습니다.

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

    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. ==============================

    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. ==============================

    7.날짜 형식은 yyyy-mm-dd입니다. 위의 쿼리는 기록을 위해 12Apr2013보다 오래된 찾고 그래서

    날짜 형식은 yyyy-mm-dd입니다. 위의 쿼리는 기록을 위해 12Apr2013보다 오래된 찾고 그래서

    더는 SQL 오류, 날짜 형식은 YYYY-MM-DD로 확인 된 경우, '2013년 4월 30일'로 날짜 문자열을 설정하여 빠른 검사를하지 않는다 제언한다.

  8. from https://stackoverflow.com/questions/19924236/query-comparing-dates-in-sql by cc-by-sa and MIT license