2013-07-08 2 views

답변

-4

당신은 CAST를 사용하고이 코드는 테스트 목적으로 만 사용됩니다 것을, 예를

select * 
from datetimetable 
where convert(char(10), datetimecolumn, 103) = '25/12/2013' 

하지만 기억을 위해 날짜 http://msdn.microsoft.com/en-us/library/ms187928(v=sql.105).aspx

을 변환하는 기능을 변환 할 수 있습니다. CONVERT 함수 의 다른 매개 변수를 사용하여 더 잘 이해하고 (첫 번째 매개 변수가 다른 크기로 재생되도록) 재생하는 것이 좋습니다.

질문에 대한 다른 답변으로 해결책을 찾아보십시오. 귀하의 환경에 가장 적합한 컴퓨터

+0

덕분에, 그것은 나를 위해 작동합니다 ... –

+1

테이블이 큰 경우'convert'가 서버를 무릎 쓰려고한다고 생각하십시오. – armen

+4

Yikes, 강제로 검사합니다. 또한 [길이가없는 varchar는 게으르고 위험한 버릇입니다.] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx). –

0

t-sql의 datetime 형식은 약간 까다 롭습니다. 먼저 날짜 시간 (예 : 25/06/2013 4:54:12 PM)이 25/06/2013이므로>와 < 연산자를 사용해야합니다! [이미지 설명 입력] [1] example orderdate> '20130625'AND orderdate < '20130626', sql 서버는 'YYYYMMDD'를 글로벌 날짜/시간 형식으로 간주하므로 언어 독립적입니다. 첨부 파일을 살펴 ...

0

시도를 취할 - :

DECLARE @givenDate DATE; 

DECLARE @t AS TABLE (
    fld_DateTime DATETIME 
) 

SET @givenDate = '2013-04-24' 

INSERT INTO @t (fld_DateTime) 
VALUES ('2013-04-23 14:37:59.580') 
, ('2013-04-23 14:59:02.403') 
, ('2013-04-23 15:15:36.890') 
, ('2013-04-24 08:57:45.800') 
, ('2013-04-24 10:44:56.663') 
, ('2013-04-24 13:18:20.760') 
, ('2013-04-25 09:38:55.503') 
, ('2013-06-28 09:20:11.007') 
, ('2013-06-28 12:37:04.973') 
, ('2013-06-28 12:38:50.130') 
, ('2013-07-03 15:27:36.167') 

SELECT fld_DateTime 
FROM @t 
WHERE fld_DateTime >= @givenDate AND fld_DateTime < DATEADD(DAY, 1, @givenDate) 
5

혼자 열을 남겨과 매개 변수에 대한 몇 가지 조작을 수행하는 것이이 상황에서 가장 좋습니다. 당신이 @SearchDate 매개 변수를 전달하는 경우 그래서, 내가 할 줄 :

SELECT abc from mytable 
where 
    CAST(datetimecolumn as date) = @SearchDate 
:

SELECT abc from mytable 
where 
    datetimecolumn >= @SearchDate and 
    datetimecolumn < DATEADD(day,1,@SearchDate) 

난 당신이 2008 이상 SQL 서버에서 실행하는 경우, 다음을 사용하는, 믿을

색인은 datetimecolumn에 있습니다. 반면 특정 색인은 내 첫 번째 쿼리를 사용할 수 있다고합니다. 일반적으로 열에 함수를 호출하는 것을 조심해야합니다. 이러한 작업은 전체 테이블 스캔을 강요하여 성능을 저하시킬 수 있습니다.

당신이 대답을 받아 들일 때와 달리 항상은 날짜를 문자열로 취급하지 않으려합니다. 서식을 지정하자마자 모든 종류의 문제를 초청합니다.

+3

+1 열의 변환으로 여전히 검색이 발생하는 유일한 예외가 있지만 문제는 의문의 여지가 있습니다. 현재는 항상 작동하는지, 내일이면 다음 버전인지, 언급되지 않음 = 보장되지 않음 =주의하십시오. –

+0

@AaronBertrand - 당신 (또는 다른 전문가들 중 한 명)이 전에 그것에 대해 이야기 해 줬기 때문에 포함 시켰습니다 :-) –

관련 문제