복붙노트

[SQL] 어떻게 SQL Server의 특정 날짜보다 큰 모든 날짜에 대해 쿼리합니까?

SQL

어떻게 SQL Server의 특정 날짜보다 큰 모든 날짜에 대해 쿼리합니까?

노력하고있어:

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;

같은 A.Date 외모 : 2010-03-04 00 : 00 : 00.000

그러나이 작동하지 않습니다.

사람이 이유에 대한 참조를 제공 할 수 있습니까?

해결법

  1. ==============================

    1.

    select *  
    from dbo.March2010 A 
    where A.Date >= Convert(datetime, '2010-04-01' )
    

    쿼리에서 2010년 4월 1일 때문에 본질적으로는 읽기, 수학 식으로 처리됩니다

    select *  
    from dbo.March2010 A 
    where A.Date >= 2005; 
    

    (2010 뺀 4 1을 뺀 2005입니다 적절한 날짜로 변환하고,이 문제를 해결합니다 작은 따옴표를 사용.)

    기술적으로, 파서는 당신이 멀리 얻을 수 있습니다

    select *  
    from dbo.March2010 A 
    where A.Date >= '2010-04-01'
    

    당신을 위해 변환을 할 것입니다,하지만 내 생각에 명시 적으로 후 올 것이다 유지 보수 프로그래머를위한 날짜 시간으로 변환보다 읽을 수 있습니다.

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

    2.문자열로 날짜를 둘러싸보십시오.

    문자열로 날짜를 둘러싸보십시오.

     select * 
     from dbo.March2010 A
     where A.Date >= '2010-04-01';
    
  3. ==============================

    3.우리는뿐만 아니라 아래와 같이 사용할 수 있습니다

    우리는뿐만 아니라 아래와 같이 사용할 수 있습니다

    SELECT * 
    FROM dbo.March2010 A
    WHERE CAST(A.Date AS Date) >= '2017-03-22';
    
    SELECT * 
        FROM dbo.March2010 A
        WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840';
    
  4. ==============================

    4.

    DateTime start1 = DateTime.Parse(txtDate.Text);
    
    SELECT * 
    FROM dbo.March2010 A
    WHERE A.Date >= start1;
    

    날짜 시간에 첫 번째 변환 텍스트 상자는 .... 쿼리에 해당 변수를 사용

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

    5.그것은 모든 위로를 요약하면, 정답은 :

    그것은 모든 위로를 요약하면, 정답은 :

    select * from db where Date >= '20100401'  (Format of date yyyymmdd)
    

    이것은 다른 언어 시스템에 문제를 방지하고 인덱스를 사용합니다.

  6. from https://stackoverflow.com/questions/10643379/how-do-i-query-for-all-dates-greater-than-a-certain-date-in-sql-server by cc-by-sa and MIT license