2012-12-10 8 views
-1

다음 "quotes.createddate 사이에 ..."줄에 여러 가지 노력에도 불구하고나는 다음과 같은 쿼리가

SELECT QuoteReference, CreatedDate, StartDate, EndDate, Operation, OccurredAt, PerformedBy, FieldName, OldValue, NewValue 
FROM Quotes, Audit 
WHERE Quotes.ID = Audit.RowId 
AND PaymentReference is not null 

AND Audit.OccurredAt > Quotes.CompletedDate 
AND Quotes.CreatedDate between '2010-04-01 11:00:00.027' AND '2010-07-30 11:39:22.027' 
and TableName = 'QUOTE' OR TableName = 'Quotes' 
ORDER BY Audit.OccurredAt desc 

, 나는 기록을 포함하는 결과 집합을 필터링 할 수 없습니다 그 시간 사이에 날짜를 만듭니다 (2010 년 4 월 1 일 ~ 7 월 30 일). 어떻게해야합니까?

답변

0

ISO DATETIME FORMAT (yyyymmdd or yyyy-mm-ddThh:mi:ss.mmm)을 사용하여 인 경우 date formatting issue을 정렬하십시오. 또한 USE JOIN 테이블 대신 WHERE table1, table2, ..

다른 조건이 맞으면 다음 쿼리에서 레코드를 가져와야합니다. 귀하의 날짜 범위가 올바르지

SELECT QuoteReference, CreatedDate, StartDate, EndDate, Operation, 
     OccurredAt, PerformedBy, FieldName, OldValue, NewValue 

FROM Quotes JOIN Audit ON Quotes.ID = Audit.RowId --JOIN TABLES 
WHERE PaymentReference is not null 
     AND Audit.OccurredAt > Quotes.CompletedDate 
     AND Quotes.CreatedDate 
      BETWEEN '20100401' AND '20100730' --Time ignored purposely for checking 
     AND TableName IN ('Quote','Quotes') 
ORDER BY Audit.OccurredAt desc 
+0

문제가 만든 날짜에 대한 종료일 이후 쿼리 결과를 반환합니다. : – dotnetdev

+0

논리는 괜찮습니다. 다른 것일 수도 있습니다. 일부 데이터와 함께 [SQL Fiddle] (http://sqlfiddle.com/#!3)을 줄 수 있습니까? – Kaf

+0

'WITHOUT TIME' 쿼리를 업데이트했습니다. – Kaf

0

는 사용

between '2010-04-01 00:00:00:000' AND '2012-07-30 23:59:59:999' 
+0

쿼리가 생성 날짜의 종료 날짜 이후에 결과를 반환하는 문제 : ( – dotnetdev

+0

종료 날짜가 무엇입니까? '2012-07-30 23:59:59 : 999 '또는'2012-07-30 00 : 00 : 00 : 000 ' –

+0

답변과 마찬가지로 2012-07-30 23 : 59 : 59 : 999 – dotnetdev