Фильтр по дате не работает - PullRequest
1 голос
/ 27 октября 2011

Я делаю вставку в таблицу, которая работает нормально.Но я хочу удалить данные за 1999 год.

Вот что я делаю в запросе:

SELECT Transaction_No, Item_no, Item_description, Date, Sales 
FROM Inventory_Table
WHERE
[Date] > '1999-01-01 00:00:00.000'

Но в новой таблице все еще отображаются предыдущие данные.

Я пытался удалить дату «00: 00: 00.000», но все еще не работает.

В чем здесь проблема?

Спасибо за любую помощь!

РЕДАКТИРОВАТЬ:

Поле даты является [Datetime] не нуль,

Мой запрос возвращает:

Transaction_No      Item_No     Item_Description    Date                      Sales
001                 019238      Baseball            1900-01-01 00:00:00.000   100
002                 014952      Basketball          1900-01-01 00:00:00.000   250
-----------------------------------------------------------------------------------
254                 012459      Gloves              2005-05-05 00:00:00.000   550
255                 014563      Pants               2005-05-05 00:00:00.000   250

Я хочу избавиться от всех данных до 1999 года. В данном примере это транзакции 001 и 002.

Также пытались без посторонней помощи:

SELECT Transaction_No, Item_no, Item_description, Date, Sales 
FROM Inventory_Table
WHERE
Datepart(year,[Date]) > 1999

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Я делаю вставку в таблицу, которая работает нормально.Но я хочу удалить данные за 1999 год.

Не уверен, что я правильно понимаю, но вставка добавляет строки в таблицу.Если вы хотите удалить строки, вы должны использовать delete .

delete from Inventory_Table
where [Date] < '1999-01-01 00:00:00.000'
1 голос
/ 27 октября 2011

Если этот запрос предназначен для выбора удаляемых строк, ваша угловая скобка неверна, должна быть меньше, не больше Кроме того, предложение WHERE идет после предложения FROM, например:

select Transaction_No,
    Item_no,
    Item_description,
    date,
    Sales
from Inventory_Table
where [Date] < '1999-01-01 00:00:00.000'
0 голосов
/ 27 октября 2011

Попробуйте привести его к дате:

WHERE [Date] > CAST('1999-01-01 00:00:00.000' AS DATETIME)

Если у вас все еще есть проблемы, вы можете попробовать использовать функцию DATEDIFF:

WHERE DATEDIFF(DAY, CAST('1999-01-01 00:00:00.000' AS DATETIME), [Date]) > 0

Вы можете настроить гранулярность в соответствии с приведенным выше примером. Он принимает DAY, HOUR, MINUTE, SECOND и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...