Удалите объекты, более старые, чем день - SQL Server

Если вы строите свой проект с помощью градиента, вам просто нужно добавить одну строку к зависимостям в build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

, а затем добавить папку в корневой проект или модуль:

Тогда вы бросаете свои банки там, и вам хорошо идти: -)

21
задан gbn 21 October 2009 в 05:13
поделиться

6 ответов

Вы можете создать оператор DELETE, используя функции datediff и getdate .

Пример использования:

DELETE FROM yourTable WHERE DATEDIFF(day,getdate(),thatColumn) < -1
31
ответ дан Doug S 29 November 2019 в 06:32
поделиться
Delete <TableName>
Where DATEDIFF(day, <ColumnName>, getdate()) > 0

Радж

5
ответ дан Raj 29 November 2019 в 06:32
поделиться

Предполагается, что столбец даты будет «RecordCreatedDate»

УДАЛИТЬ ИЗ ВАШЕЙ СТОИМОСТИ, ГДЕ RecordCreatedDate < DATEADD (d, -1, GETDATE ())

Я только предупреждаю, что если в вашей базе данных есть миллионы строк, у вас должен быть индекс для столбца RecordCreatedDate и, возможно, вы будете удалять партии меньшего размера, если вы будете удалять большие суммы данных.

0
ответ дан KeyOfJ 29 November 2019 в 06:32
поделиться

или

ts> = now () - ИНТЕРВАЛ 1 ДЕНЬ

где ts - имя столбца даты и времени

-1
ответ дан Zepplock 29 November 2019 в 06:32
поделиться

Когда дело доходит до SQL, вы должны указать, что вы имеете в виду под словом «старше дня».

  • DATEDIFF: он использует полночь границы дня, поэтому запускайте его 19 октября в 00:05 и вы удалите строки 6-минутной давности (18 октября 23:59)

  • 24 часа?

  • Вчера в полночь? Выполнить код 19 октября, удалить строки до 18 числа?

Также не помещать функцию в столбец.

Предполагается, что 24 часа с точностью до минуты:

DELETE
    MyTableWhere
WHERE
    MyColumn < DATEADD(day, -1, GETDATE())

Предполагается, что вчера полночь :

DELETE
    MyTableWhere
WHERE
    MyColumn < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1)
29
ответ дан 29 November 2019 в 06:32
поделиться

Я обычно не рекомендую удалять данные из базы данных, потому что вы никогда не знаете, когда вам может понадобиться вернуться и восстановить или откатиться к предыдущим записям из-за повреждения данных или аудита и т. Д. Вместо этого я добавит заголовок битового столбца, например "IsDeleted", и установит для дневных записей значение true с помощью оператора обновления.

Примерно

'UPDATE tablename SET IsDeleted = 1 WHERE (DATEDIFF(day,DateCreatedOn,GETDATE()) > 0)

Где DateCreatedOn - это место создания вашей записи или дата с меткой времени

0
ответ дан 29 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: