powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удаление данных за вчерашний день
39 сообщений из 39, показаны все 2 страниц
удаление данных за вчерашний день
    #39631693
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите составить запрос для удаления данных из таблицы за вчераний день.
__________________________________________________________________
THE TRUTH IS OUT THERE
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #39631710
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_maxTaPaKпропущено...


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


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


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

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


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



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

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

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

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

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

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

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

Но, это nonSARG.

#Хэщ=
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #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
удаление данных за вчерашний день
    #39632177
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как всегда call центр индусов на высоте
для удобства запишем, что земля плоская
авторТаки да. Предполагаем сразу 2 вещи.
1. У Вас есть кластерный индекс по int ключу с кодом даты.
2. У Вас на сервере время не меняется шаловливыми руками сисадминов и не прилетает периодически с некошерных NTP серверов.

авторdatetime2(3)
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632324
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapKonst_Oneпропущено...


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

P.S. Время там в часах/минутах/секундах/долях секунды. При чём здесь миллисекунды?
P.P.S. Можете писать ваш код в предположении, что дата всегда равна 1 января 1900 года.
Ведь другие даты могут и не задавать?

http://cyclowiki.org/wiki/Миллисекунда
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632330
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneiapпропущено...
Гуманитарий?

P.S. Время там в часах/минутах/секундах/долях секунды. При чём здесь миллисекунды?
P.P.S. Можете писать ваш код в предположении, что дата всегда равна 1 января 1900 года.
Ведь другие даты могут и не задавать?

http://cyclowiki.org/wiki/Миллисекунда

читаем и думаем
авторn* is a zero- to seven-digit number from 0 to 9999999 that represents the fractional seconds. In Informatica, the fractional seconds will be truncated when n > 3.
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632335
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKкак всегда call центр индусов на высоте
для удобства запишем, что земля плоская
авторТаки да. Предполагаем сразу 2 вещи.
1. У Вас есть кластерный индекс по int ключу с кодом даты.
2. У Вас на сервере время не меняется шаловливыми руками сисадминов и не прилетает периодически с некошерных NTP серверов.

авторdatetime2(3)
Я вижу, что "а эта ваша "дата" (которая может быть вчерашней) она какого типа? " - ответ автора темы datetime2(3). Я не вижу, чтобы в таблице был столбец типа int с заполнением YYYYMMDD. Я вижу, что автор рано или поздно придет к этому. "Я художник, я так вижу" (с)
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632341
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

вы хотите поспорить про определение миллисекунда или что?

.000

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

вы хотите поспорить про определение миллисекунда или что?

.000

будете как и iap что-то возражать про это определение?
нет милисекунд в данном типи или вы будете и дальше фантазировать как Andy_OLAP
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632357
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKKonst_OneTaPaK,

вы хотите поспорить про определение миллисекунда или что?

.000

будете как и iap что-то возражать про это определение?
нет милисекунд в данном типи или вы будете и дальше фантазировать как Andy_OLAP

не понял ваше высказывание. имеете что-то возразить?

Код: sql
1.
2.
3.
  DECLARE @d DATETIME2(3) = GETDATE()
   -- Expression extracts last 3 digits expecting milliseconds
  SELECT CAST(RIGHT(CAST(@d AS VARCHAR), 3) AS INTEGER) AS ms
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632363
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneTaPaKпропущено...

нет милисекунд в данном типи или вы будете и дальше фантазировать как Andy_OLAP

не понял ваше высказывание. имеете что-то возразить?

Код: sql
1.
2.
3.
  DECLARE @d DATETIME2(3) = GETDATE()
   -- Expression extracts last 3 digits expecting milliseconds
  SELECT CAST(RIGHT(CAST(@d AS VARCHAR), 3) AS INTEGER) AS ms



https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime2-transact-sql?view=sql-server-2017
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632368
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуденсо, что вы открыли наконец то хэлп, но вы про точность типа у ТС забыли datetime2( 3 )
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632371
Фотография mr_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчуденсо, что вы открыли наконец то хэлп, но вы про точность типа у ТС забыли datetime2( 3 )
дата хранится в формате
Код: sql
1.
 2018-04-17 08:24:43.699
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632373
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчуденсо, что вы открыли наконец то хэлп, но вы про точность типа у ТС забыли datetime2( 3 )
журнал "Деградант" продолжает хронику

авторdatetime2 [ (fractional seconds precision) ]

fractional seconds precision
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632379
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKKonst_Oneчуденсо, что вы открыли наконец то хэлп, но вы про точность типа у ТС забыли datetime2( 3 )
журнал "Деградант" продолжает хронику

авторdatetime2 [ (fractional seconds precision) ]

fractional seconds precision

вы хоть сами почитайте на досуге
https://ru.wikipedia.org/wiki/Секунда

а то так и помрёте и не поймёте , чем миллисекунда от наносекугды отличается и что такое precision и scale.
вы всё упираете на физическое хранение данных в этом типе со стороны сервера, а мы речь ведём о другом
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632396
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneTaPaKпропущено...

журнал "Деградант" продолжает хронику

пропущено...


вы хоть сами почитайте на досуге
https://ru.wikipedia.org/wiki/Секунда

а то так и помрёте и не поймёте , чем миллисекунда от наносекугды отличается и что такое precision и scale.
вы всё упираете на физическое хранение данных в этом типе со стороны сервера, а мы речь ведём о другом
теперь медленно: в дроби не время , ни в физическом смысле ни в смысле хранения. В приближении это транкейтнутые наносекунды, к времени это не имеет ни какого отношения это ДОЛИ
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632399
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просвещайтесь, господа:
http://www.sqlines.com/sql-server/datetime_or_datetime2_3
...
Рейтинг: 0 / 0
удаление данных за вчерашний день
    #39632470
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю, что за базар тут развели?
Если просто проверять на равенство поле типа DATETIME2(3) и, например, CAST(DATEADD(DAY,-1,GETDATE()) AS DATE),
то скорее всего получим false, ибо поле типа DATETIME2(3) содержит время.
Это всё, из-за чего здесь возникли трения.
Обсуждать тут определения в документации типов DATETIME и DATETIME2 - это же абсурд.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / удаление данных за вчерашний день
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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