-1

我有以下查询:

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

尽管尝试了很多事情,但在“quotes.createddate between ...”行上,我无法过滤结果集以包含创建日期介于这些时间(2010 年 4 月 1 日至 2012 年 7 月 30 日)之间的记录。我怎样才能做到这一点?

4

2 回答 2

0

用于ISO DATETIME FORMAT (yyyymmdd or yyyy-mm-ddThh:mi:ss.mmm)date formatting issue if进行排序。也尝试使用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
于 2012-12-10T12:52:57.390 回答
0

您的日期范围不正确,请使用:

between '2010-04-01 00:00:00:000' AND '2012-07-30 23:59:59:999'
于 2012-12-10T12:54:49.033 回答