Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 удаление данных за вчерашний день  [new]
mr_max
Member

Откуда:
Сообщений: 1310
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE
17 апр 18, 15:32    [21345756]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
mr_max
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE


DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1
17 апр 18, 15:34    [21345768]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3462
TaPaK
mr_max
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE


DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1


хреноватенько
17 апр 18, 15:39    [21345789]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
mr_max
Member

Откуда:
Сообщений: 1310
TaPaK
mr_max
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE


DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1

Как просто, спасибо.
17 апр 18, 15:41    [21345796]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3462
mr_max
TaPaK
пропущено...


DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1

Как просто, спасибо.



угадайте, почему незашто?
17 апр 18, 15:43    [21345803]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Ролг Хупин
mr_max
пропущено...

Как просто, спасибо.



угадайте, почему незашто?

неси свет в нашу тьму
17 апр 18, 15:53    [21345846]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3462
TaPaK
Ролг Хупин
пропущено...



угадайте, почему незашто?

неси свет в нашу тьму


добавлю тьмы ;-)
17 апр 18, 16:22    [21345981]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
mr_max
Как просто, спасибо.
так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?
17 апр 18, 16:34    [21346056]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
mr_max
Member

Откуда:
Сообщений: 1310
Дедушка
mr_max
Как просто, спасибо.
так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?

datetime2(3)
17 апр 18, 16:37    [21346069]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
mr_max
Дедушка
пропущено...
так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?

datetime2(3)
Тогда вам впаривают!
17 апр 18, 16:57    [21346144]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
ну может там только даты у него лежат без времени, тогда пойдёт =)
17 апр 18, 17:00    [21346154]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
iap
mr_max
пропущено...

datetime2(3)
Тогда вам впаривают!

естественно, какое ТЗ такой и ответ :)
17 апр 18, 17:00    [21346156]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
mr_max
datetime2(3)
в этих датах время присутствует?
17 апр 18, 17:08    [21346178]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Дедушка
mr_max
datetime2(3)
в этих датах время присутствует?
Как же, отсутствует! В данном случае точность - одна тысячная секунды!
17 апр 18, 17:19    [21346208]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
00:00:00.000
17 апр 18, 17:20    [21346211]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
iap
Как же, отсутствует!
тут я вас не догнал... поясните?
17 апр 18, 17:25    [21346234]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
iap
Дедушка
пропущено...
в этих датах время присутствует?
Как же, отсутствует! В данном случае точность - одна тысячная секунды!
Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.
17 апр 18, 17:27    [21346241]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
iap
iap
пропущено...
Как же, отсутствует! В данном случае точность - одна тысячная секунды!
Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.


и что? его могут и не задавать , время это ваше в миллисекундах
17 апр 18, 17:28    [21346246]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
iap,

ну, тип я вижу,
другое дело, что у ТСа все записи "за вчера" могут иметь в этом поле значение 2018-04-16 00:00:00.000
мой вопрос был про это :)
17 апр 18, 17:29    [21346252]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Konst_One
iap
пропущено...
Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.


и что? его могут и не задавать , время это ваше в миллисекундах
Гуманитарий?

P.S. Время там в часах/минутах/секундах/долях секунды. При чём здесь миллисекунды?
P.P.S. Можете писать ваш код в предположении, что дата всегда равна 1 января 1900 года.
Ведь другие даты могут и не задавать?
17 апр 18, 18:17    [21346366]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
04cf9f9576a6f15
Member [заблокирован]

Откуда:
Сообщений: 2927
DELETE FROM [table] WHERE CAST([Дата] AS DATE) = DATEADD(DAY, -1, CAST(GETDATE() AS DATE))
Но, это nonSARG.

#Хэщ=
17 апр 18, 19:23    [21346547]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30778
04cf9f9576a6f15
DELETE FROM [table] WHERE CAST([Дата] AS DATE) = DATEADD(DAY, -1, CAST(GETDATE() AS DATE))

Но, это nonSARG.

#Хэщ=
Почему же nonSARG, разве оптимизатор не преобразует это в вид [Дата] BETWEEEN ... AND ... ?

Но конечно лучше сразу написать правильно
WHERE [Дата] >= DATEADD(DAY, -1, CAST(GETDATE() AS DATE)) AND [Дата] < CAST(GETDATE() AS DATE)
17 апр 18, 19:28    [21346562]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
mr_max
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE



Таки да. Предполагаем сразу 2 вещи.
1. У Вас есть кластерный индекс по int ключу с кодом даты.
2. У Вас на сервере время не меняется шаловливыми руками сисадминов и не прилетает периодически с некошерных NTP серверов.

Итак.
declare @date datetime, @did int

set @date = convert(date,getdate())
set @did = convert(int,convert(varchar(8),@date,112)) -- это просто волшебство

-- не будем нагружать журнал транзакций, пусть удаляем таки совсем чуть-чуть
delete top (100000) from [dbo].[table] where [did]=@did
-- но при этом удаляет в цикле, который завершится при наступлении
-- того самого нужного момента, который утвержден распоряжением
-- партии и правительства и постановлением кнессета
WHILE @@ROWCOUNT > 0 
	begin
	delete top (100000) from [dbo].[table] where [did]=@did
	end
	
17 апр 18, 19:35    [21346583]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
mr_max,

Конечно, за вчерашний день будет немного иначе.
declare @date datetime, @did int

set @date = convert(date,getdate())
set @date = dateadd(dd,-1,@date) -- теперь тут вчерашний день
set @did = convert(int,convert(varchar(8),@date,112)) -- это просто волшебство

-- не будем нагружать журнал транзакций, пусть удаляем таки совсем чуть-чуть
delete top (100000) from [dbo].[table] where [did]=@did
-- но при этом удаляет в цикле, который завершится при наступлении
-- того самого нужного момента, который утвержден распоряжением
-- партии и правительства и постановлением кнессета
WHILE @@ROWCOUNT > 0 
	begin
	delete top (100000) from [dbo].[table] where [did]=@did
	end
17 апр 18, 20:08    [21346653]     Ответить | Цитировать Сообщить модератору
 Re: удаление данных за вчерашний день  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
как всегда call центр индусов на высоте
для удобства запишем, что земля плоская
автор
Таки да. Предполагаем сразу 2 вещи.
1. У Вас есть кластерный индекс по int ключу с кодом даты.
2. У Вас на сервере время не меняется шаловливыми руками сисадминов и не прилетает периодически с некошерных NTP серверов.


автор
datetime2(3)
18 апр 18, 09:21    [21347503]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить