Tsql 在日期之间发行

Tsql 在日期之间发行,tsql,Tsql,我有以下疑问: 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.C

我有以下疑问:

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日)之间的记录。如何执行此操作?

使用
ISO日期时间格式(yyyymmdd或yyyy mm ddThh:mi:ss.mmm)
日期格式问题进行排序
(如果有)。同时尝试使用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

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

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

问题是查询返回的结果晚于创建日期的结束日期:(逻辑没问题,可能是其他原因。你能提供一些数据吗?我已经在没有时间的情况下更新了查询
,看看是否有助于检查目的?同一问题,createddate的最新记录是2012-12-10 13:26:24.000你能给我们一个最好的理解方式吗?查询没有问题。问题是查询重新开始在创建日期的结束日期后返回结果。:(结束日期是什么?'2012-07-30 23:59:59:999'或您的答案中的'2012-07-30 00:00:00:000',所以2012-07-30 23:59:59:999