выбрать запрос между двумя датами

Я пытаюсь сделать выбор между двумя конкретными датами в базе данных

Это я чувствую на правильном пути, но неправильно

Как я могу заставить это работать

SELECT --RTRIM(C.CustomerFirstName) + ' ' + LTRIM(C.CustomerLastName) as CustomerFullName, ROW_NUMBER() OVER(ORDER BY CP.ActionDate) AS RowNumber, C.CustomerFirstName, C.CustomerLastName, C.CustomerCompany, C.CustomerPosition, C.CustomerCountry, C.CustomerProvince, C.CustomerContact, CP.ActionDate, CP.ProductCode, CP.CustomerEmail FROM tblCustomers C JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail ORDER BY ActionDate DESC WHERE CP.ActionDate BETWEEN '1/17/2013' AND '19/12/2012' 

Вместо

 WHERE CP.ActionDate BETWEEN '1/17/2013' AND '19/12/2012` 

Попробуй это:

 WHERE CP.ActionDate BETWEEN '19/12/2012' AND '1/17/2013' 

Обратите внимание: это потому, что предикат BETWEEN в SQL Server является асимметричным , это означает, что value1 BETWEEN value2 AND value3 совпадает с Value1 >= Value2 AND Value1 <= Value3 , поэтому значение value2 которое перед AND должно быть меньше или равно равным value3 .

Меньшая дата должна быть указана первыми

 BETWEEN '12/19/2012' AND '1/17/2013' 

В вашем текущем запросе есть несколько проблем.

Во-первых, у вас есть даты в неправильном порядке.

Во-вторых, у вас есть ORDER BY в неправильном месте. ORDER BY – последний элемент, указанный в вашем выборе:

 FROM tblCustomers C JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail WHERE CP.ActionDate BETWEEN '12/19/2012' AND '1/17/2013' ORDER BY ActionDate DESC 

Вы также можете использовать:

 FROM tblCustomers C JOIN tblCustomerProducts CP ON C.CustomerEmail = CP.CustomerEmail WHERE CP.ActionDate >= '12/19/2012' AND CP.ActionDate <= '1/17/2013' ORDER BY ActionDate DESC 

Я бы также посоветовал вам убедиться, что даты отформатированы таким же образом. У вас есть DD/MM/YYYY а другой – MM/DD/YYYY

Вы потеряли даты, он должен быть меньшим на первом месте и больше на втором месте:

 WHERE CP.ActionDate BETWEEN '19/12/2012' AND '1/17/2013' 

ИЛИ

 WHERE CP.ActionDate >= '19/12/2012' AND CP.ActionDate <= '1/17/2013' 
  • Параметрированный запрос, который не был предоставлен
  • Измените строку подключения app.config в зависимости от ПК
  • Есть ли способ создать автоматическое создание свойств из базы данных SQL Server?
  • Изменить действие запуска в проекте базы данных Visual Studio
  • SQL Server 2012 «Приложение не может запускаться» после установки Visual Studio 2008
  • Безопасно ли удалять SQL Server 2005 Express, установленную Visual Studio 2008 при установке SQL Server 2008?
  • Настроить VS2008 для создания баз данных SQL Server вместо SQL Server Express?
  • Скрытые столбцы SSRS 2008 не должны экспортироваться в CSV
  • Переход с VisualStudio, сгенерированный материал базы данных, в Programmer Generated
  • Прокси-сервер туннелирования на VS 2008
  • как изменить шрифты в дизайнере BIDS?
  • Interesting Posts

    Как получить определение процедуры Store, которое было выполнено в любую конкретную дату?

    Как создать две временные таблицы с одинаковой структурой без записи дважды?

    Sql Server 2008 выражает рекурсивный запрос

    Разделение отдельных хранимых процедур на временные таблицы

    Почему этот оператор UPDATE для varbinary (max) на SQL Server настолько медленный?

    SQL Server: выберите подстроку из каждой строки таблицы

    Подключить локальную базу данных SQL Server с использованием учетных данных Azure Active Directory

    Получить минимальное значение между несколькими столбцами

    Триггер для повышения ошибки, предотвращения удаления и попытки аудита

    Решение для: сохранения заявления на обновление, вставку или удаление повлияло на неожиданное количество строк (0)

    Создание новой временной таблицы из существующей таблицы в зависимости от значений столбца

    Форма доступа Ms, связанная с SQL Server, не отвечает

    SQL UPDATE с заявлением CASE дает неполные результаты

    MS SQL Server 2008 "с (nolock)" эквивалент для IBM DB2 9.7

    Удалить количество строк из таблицы Transact-SQL

    Давайте будем гением компьютера.