Удаление записей SQL на основе содержимого производного столбца

Я надеюсь, что кто-то может помочь мне с этим. У меня есть таблица MS SQL с производным столбцом, на дату импорта записей, и мне нужно удалить записи на основе содержимого этого столбца. Что мне нужно сделать, так это удалить все записи из таблицы с датой «2011-11-18». Теперь этот столбец является столбцом даты и времени, поэтому он содержит информацию о времени после даты, то есть 2011-11-18 09:29:38.000, но независимо от того, какую команду я пытаюсь для этого:

  • Удалить из таблицы, где Date_Imported как «2011-11-18%»
  • Удалить из таблицы, где Date_Imported как «2011-11-18»
  • Удалить из таблицы, где Date_Imported = 2011-11-18

Возвращается сообщение «затронуто 0 строк», хотя я знаю, что в таблице есть записи с этой датой. Какие-нибудь мысли? Я был бы признателен за вашу помощь.


person daniness    schedule 18.11.2011    source источник


Ответы (2)


Не уверен, что это самый простой способ, но он должен работать:

Delete from table where
  year(Date_Imported) = 2011
  and month(Date_Imported) = 11
  and day(Date_Imported) = 18

См. Функции даты и времени.

person Andrew Schulman    schedule 18.11.2011

Если вы примените его к дате, ваша проверка должна сработать.

DELETE FROM TABLE WHERE CAST(Date_Imported As Date) = '2011-11-18'
person Jesse van Assen    schedule 18.11.2011