2015-12-07 3 views
-3

Мне нужно выбрать строки из таблицы, где smalldatetime между двумя значениями.SQL smalldatetime SELECT query

Im пытается сделать этот запрос, но не работают:

SELECT [numdoc] 
    ,[numdok] 
    ,[kodsotr] 
    ,[dateShip] 
    ,[pallCount] 
FROM [tsdgreen].[dbo].[ShipmentControl] 
WHERE [dateShip] > '2015/12/10 10:58:00' 
AND [dateShip] < '2015/12/11 10:42:00' 
+0

могли бы вы опубликовать результат "выберите * из ... предел 1;" , который поможет отладить – vish

+1

Какая СУБД это? Также, покажите некоторые данные образца, желаемый выход и фактический выход. Кроме того, сообщение об ошибке, если оно есть. – DarkKnight

+0

Всегда используйте формат даты и времени при сравнении этих столбцов. – Avi

ответ

0

Форматирование DateTime, где год перед это иногда сбивает с толку.
Ваши поля «Дата» и «Месяц», вероятно, будут назад.
По умолчанию он ожидает YYYY/DD/MM и НЕ YYYY/MM/DD

В Oracle вы можете также использовать явное преобразование формата: TO_DATE('2015/12/10','yyyy/mm/dd') обеспечить дата в том же формате, отправляющие.

Кроме того, при использовании Microsoft SQL, то вы должны использовать BETWEEN ключевое слово, как показывает этот пример:

SELECT 
    [numdoc] 
    ,[numdok] 
    ,[kodsotr] 
    ,[dateShip] 
    ,[pallCount] 
FROM 
    [tsdgreen].[dbo].[ShipmentControl] 
WHERE 
    [dateShip] BETWEEN '2015/10/12 10:58:00' AND '2015/11/12 10:42:00' 
0

В OracleSQL вы можете написать так:

SELECT [numdoc] 
    ,[numdok] 
    ,[kodsotr] 
    ,[dateShip] 
    ,[pallCount] 
FROM [tsdgreen].[dbo].[ShipmentControl] 
WHERE [dateShip] > TO_DATE('2015/12/10','yyyy/mm/dd') 
AND [dateShip] < TO_DATE('2015/12/11','yyyy/mm/dd') 
0

Я нашел ответ. 2015/12/10 10:58:00 означает YYYY/DD/MM, я думаю, что было YYYY/MM/DD