Ваш код доступа
Where Field = Date()
Sql Server
Where Field = CAST(GETDATE() AS DATE)
Функция GETDATE() получает текущий DateTime.
Дата между сегодня и последние 7 дней
Where Field BETWEEN CAST(DATEADD(DAY, -7, GETDATE()) AS DATE)
AND CAST(GETDATE() AS DATE)
Причина я использовал CAST()
функцию, потому что GETDATE()
возвращает текущее Datetime что-то вроде этого 2014-02-09 22:09:53.067
теперь, если вы проверяете значения WHERE поле имеет сегодняшнюю дату, это будет только значения where Field = '2014-02-09 22:09:53.067'
Не записи, где Дата 2014-02-09
, это также займет время, потому что я использовал функцию CAST чтобы избавиться от временной части от функции GETDATE().
SELECT GETDATE() Returns '2014-02-09 22:09:53.067'
SELECT CAST(GETDATE() AS DATE) Returns '2014-02-09'
Я установил проблемы с вашим запросом были очень немногие из них: SI предложил бы читать книги онлайн и узнать правильный synatx для SQL-сервера см ниже фиксированного запроса
SELECT TransactionTotals.[Date]
, TransactionTotals.EntryID
, TransactionItems.ItemID
, TransactionItems.ClientID
, [FirstName] + ' ' + [LastName] AS Name
, TransactionItems.[Service]
, TransactionItems.Therapist
, TransactionItems.GiftCertificate
, TransactionItems.Charge
, TransactionItems.Gratuity
, TransactionTotals.Paid
, TransactionItems.Comments
FROM CLIENTS INNER JOIN TransactionItems
ON CLIENTS.ClientID = TransactionItems.ClientID
INNER JOIN TransactionTotals
ON TransactionTotals.EntryID = TransactionItems.EntryID
WHERE TransactionTotals.[Date] = CAST(GETDATE() AS DATE)
ORDER BY TransactionTotals.EntryID DESC;
МЕЖДУ аргументы должны быть перечислены от наименьшего к самому большому. [Не, чтобы вы все равно использовали BETWEEN для запросов диапазона] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in- common.aspx). –