2013-04-10 2 views
1

나는 이것을 알아 내는데 어려움을 겪고 있으며 여기에서 모든 것을 시도했다. 나는 그것이 단순하다는 것을 알고있다 ...SQL Compare INT to GETDATE

우리의 날짜는 테이블에 int로 저장된다. EX 20130409. SQL에서 오늘 날짜보다 적은 날짜를 반환하도록하려면 어떻게합니까?

나는 cast와 convert의 다른 조합을 사용했지만 계속 오버플로 오류가 발생하거나 변환에 실패했습니다. , 년, 월, 일 사이에 '-'

SELECT 
DBO.SPSYS07.LOC_CODE, 
CONVERT(DATETIME,CAST(DBO.SPSYS07.REQ_D_DATE AS CHAR(8)),101) AS [CONVERTED_REQ_DATE], 
DBO.SPSYS07.REQ_D_DATE 
FROM DBO.SPSYS07 
WHERE SPSYS07.SHIP_DATE <= convert(int,convert(varchar(8),getdate(),112)) 
+1

*** SQL ***입니다 단지 * 구조적 쿼리 언어 * - 많은 데이터베이스 시스템에서 사용하는 언어가 아닌 AA 데이터베이스 제품 ... 많은 일들이 공급 업체 특정 있습니다 - 그래서 우리는 ** 데이터베이스 시스템 ** (그리고 어떤 버전)을 사용하고 있는지 당신이 알고 있어야합니다 .... –

+0

포맷 __101__은 __112와 매우 다릅니다 __... 선택 목록에서'convert'를 주석 처리하면 작동합니까? ? –

+0

java/C#로 작업 하시겠습니까? 대신 변환 코드를 작성할 수 있습니다 .. – BrOSs

답변

0

는, 다음 제거 오늘 날짜를 선언하고

Declare todaysDate date 
Set todaysDate = getdate() 

그런 다음 문자열로 todaysDate를 변환하는 것이 사용해보십시오 :

여기에 최근의 코드 그런 다음 ....

Select..... Where shipdate <= todaysDate 
0

int 값을 '20130101'로 변경하면됩니다.

DECLARE @date date 
SELECT @date = CONVERT(date, CAST('20130101' AS CHAR(12)), 112) 
SELECT * FROM yourTable where @date < getdate() 

관련

+0

변수에 값을 할당하는 Select 문을 데이터 검색 연산과 결합해서는 안됩니다 ... – user1604264