SQL은

2012-05-07 4 views
1

내가 내가 내가 얻을 현재 시간 대신 오전 2시에 현재 날짜를 사용하여 얻을 수있는 방법SQL은

SELECT * 
    FROM dbo.myTable 
    WHERE endDate < Convert(datetime, Convert(int, GetDate())) 

만료 된 행의 목록을 반환하는 선택 쿼리를 가지고 오프셋 (offset) GetDate()

+0

당신은 오전 2시에서 오늘 아침의 타임 스탬프를 의미? date_sub() 또는 date_add()를 시도 했습니까 –

+0

예, 서버 측 언어를 사용하여 전달할 수 있습니다. – Daniel

+0

자정에 현재 날짜를 가져 와서 2Hours를 추가 할 수 없습니까? –

답변

1

에서 오전 2시에 현재 날짜 효율적으로 활용하려면 다음

convert(datetime,left(convert(varchar, getdate(), 121),10) + ' 02:00') 
+0

'121'은 무엇을합니까? – Daniel

+1

형식 코드입니다. http://www.blackwasp.co.uk/SQLDateTimeFormats.aspx에서보십시오 – hkf

+1

@ 대니얼 : [121 형식] (http://msdn.microsoft.com/en-us/library/ms187928.aspx "CAST 및 CONVERT (Transact-SQL)")은 소위 ODBC 정규 형식 인 경우에도 로캘에 따라 다릅니다. 물론 로캘 설정에서도 잘 작동 할 수 있습니다. 여전히 로케일과 무관하게하려면 112 형식을 사용하십시오 (따라서 10 대신 8 개의 문자가 잘릴 수 있습니다). 또한, [이 질문에주의를 기울이십시오 (http://stackoverflow.com/q/1177449/297408 "SQL 서버에서 날짜 시간의 시간 부분을 제거하는 최선의 방법"). –