Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удаление данных за вчерашний день / 25 сообщений из 39, страница 1 из 2
17.04.2018, 15:32
    #39631693
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE
...
Рейтинг: 0 / 0
17.04.2018, 15:34
    #39631697
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxПомогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE

Код: sql
1.
2.
3.
DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1
...
Рейтинг: 0 / 0
17.04.2018, 15:39
    #39631707
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
TaPaKmr_maxПомогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE

Код: sql
1.
2.
3.
DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1



хреноватенько
...
Рейтинг: 0 / 0
17.04.2018, 15:41
    #39631708
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
TaPaKmr_maxПомогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE

Код: sql
1.
2.
3.
DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1


Как просто, спасибо.
...
Рейтинг: 0 / 0
17.04.2018, 15:43
    #39631710
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxTaPaKпропущено...


Код: sql
1.
2.
3.
DELETE FROM TABLE WHERE [дата] = 'вчерашний день'
--OR
DELETE FROM TABLE WHERE [дата] = getdate()-1


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


угадайте, почему незашто?
...
Рейтинг: 0 / 0
17.04.2018, 15:53
    #39631719
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Ролг Хупинmr_maxпропущено...

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


угадайте, почему незашто?
неси свет в нашу тьму
...
Рейтинг: 0 / 0
17.04.2018, 16:22
    #39631761
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
TaPaKРолг Хупинпропущено...



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

добавлю тьмы ;-)
...
Рейтинг: 0 / 0
17.04.2018, 16:34
    #39631772
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxКак просто, спасибо.так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?
...
Рейтинг: 0 / 0
17.04.2018, 16:37
    #39631776
mr_max
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Дедушкаmr_maxКак просто, спасибо.так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?
datetime2(3)
...
Рейтинг: 0 / 0
17.04.2018, 16:57
    #39631812
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxДедушкапропущено...
так, на всякий случай...
а эта ваша "дата" (которая может быть вчерашней) она какого типа?
datetime2(3)Тогда вам впаривают!
...
Рейтинг: 0 / 0
17.04.2018, 17:00
    #39631815
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
ну может там только даты у него лежат без времени, тогда пойдёт =)
...
Рейтинг: 0 / 0
17.04.2018, 17:00
    #39631816
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
iapmr_maxпропущено...

datetime2(3)Тогда вам впаривают!
естественно, какое ТЗ такой и ответ :)
...
Рейтинг: 0 / 0
17.04.2018, 17:08
    #39631822
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxdatetime2(3)в этих датах время присутствует?
...
Рейтинг: 0 / 0
17.04.2018, 17:19
    #39631835
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Дедушкаmr_maxdatetime2(3)в этих датах время присутствует?Как же, отсутствует! В данном случае точность - одна тысячная секунды!
...
Рейтинг: 0 / 0
17.04.2018, 17:20
    #39631836
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
00:00:00.000
...
Рейтинг: 0 / 0
17.04.2018, 17:25
    #39631845
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
iapКак же, отсутствует!тут я вас не догнал... поясните?
...
Рейтинг: 0 / 0
17.04.2018, 17:27
    #39631849
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
iapДедушкапропущено...
в этих датах время присутствует?Как же, отсутствует! В данном случае точность - одна тысячная секунды!Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.
...
Рейтинг: 0 / 0
17.04.2018, 17:28
    #39631851
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
iapiapпропущено...
Как же, отсутствует! В данном случае точность - одна тысячная секунды!Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.

и что? его могут и не задавать , время это ваше в миллисекундах
...
Рейтинг: 0 / 0
17.04.2018, 17:29
    #39631855
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
iap,

ну, тип я вижу,
другое дело, что у ТСа все записи "за вчера" могут иметь в этом поле значение 2018-04-16 00:00:00.000
мой вопрос был про это :)
...
Рейтинг: 0 / 0
17.04.2018, 18:17
    #39631907
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Konst_Oneiapпропущено...
Чего-то я туманно написал... В общем, есть время.
В скобках - точность в долях секунды, по умолчанию - 7 знаков после десятичной точки.

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

P.S. Время там в часах/минутах/секундах/долях секунды. При чём здесь миллисекунды?
P.P.S. Можете писать ваш код в предположении, что дата всегда равна 1 января 1900 года.
Ведь другие даты могут и не задавать?
...
Рейтинг: 0 / 0
17.04.2018, 19:23
    #39631976
04cf9f9576a6f15
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
Код: sql
1.
DELETE FROM [table] WHERE CAST([Дата] AS DATE) = DATEADD(DAY, -1, CAST(GETDATE() AS DATE))

Но, это nonSARG.

#Хэщ=
...
Рейтинг: 0 / 0
17.04.2018, 19:28
    #39631986
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
04cf9f9576a6f15
Код: sql
1.
DELETE FROM [table] WHERE CAST([Дата] AS DATE) = DATEADD(DAY, -1, CAST(GETDATE() AS DATE))


Но, это nonSARG.

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

Но конечно лучше сразу написать правильно
Код: sql
1.
WHERE [Дата] >= DATEADD(DAY, -1, CAST(GETDATE() AS DATE)) AND [Дата] < CAST(GETDATE() AS DATE)
...
Рейтинг: 0 / 0
17.04.2018, 19:35
    #39631999
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_maxПомогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE


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

Итак.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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
	
...
Рейтинг: 0 / 0
17.04.2018, 20:08
    #39632029
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
mr_max,

Конечно, за вчерашний день будет немного иначе.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
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
...
Рейтинг: 0 / 0
18.04.2018, 09:21
    #39632177
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удаление данных за вчерашний день
как всегда call центр индусов на высоте
для удобства запишем, что земля плоская
авторТаки да. Предполагаем сразу 2 вещи.
1. У Вас есть кластерный индекс по int ключу с кодом даты.
2. У Вас на сервере время не меняется шаловливыми руками сисадминов и не прилетает периодически с некошерных NTP серверов.

авторdatetime2(3)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удаление данных за вчерашний день / 25 сообщений из 39, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]