как удалить данные из таблицы, которая имеет дату до 2006 года - PullRequest
2 голосов
/ 05 октября 2010

Я хочу удалить все данные из таблицы с датой, предшествующей 01/01/2006

Я пытаюсь это сделать:

delete from table_a 
where to_char(last_update_date,'MM/DD/YYYY') < to_char('01/01/2006', 'MM/DD/YYYY')

Но это не работает.

Каков наилучший способ сравнения дат в sql?

Ответы [ 3 ]

13 голосов
/ 05 октября 2010

Используйте функцию TO_DATE для преобразования строки в Oracle DATE (включает время):

DELETE FROM TABLE_A
 WHERE last_update_date < TO_DATE('01/01/2006', 'MM/DD/YYYY')

... для удаления записей со значением last_update_date от 31 декабря, 2005 в 11: 59: 59,9999 или более ранней версии.

1 голос
/ 05 октября 2010

Если вы используете T-SQL, вы можете использовать DATEDIFF (datepart, startdate, enddate). следующее ты бы использовал это!

delete from table_a where WHERE DateDiff(dd, last_update_date, '01/01/2006') > 0

тем не менее, если вы думаете об Oracle. Вы можете использовать To_Date (дата || строка, формат)

***delete from table_a where WHERE To_date(last_update_date,'dd/mm/yyyy') > to_date('01/01/2006','dd/mm/yyyy')***
1 голос
/ 05 октября 2010

Так близко, так близко ... как будто вы почти чувствуете, что они были на грани крупного прорыва ...

Вот, попробуйте это:

delete from table_a where last_update_date < '01/01/2006'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...