powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтр по CurrentDate минус 30 days по возрастанию до текущей даты
3 сообщений из 3, страница 1 из 1
Фильтр по CurrentDate минус 30 days по возрастанию до текущей даты
    #39950431
Vikonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Камрады!

Есть довольно большая таблица MS SQL из которой мне нужно выбирать каждый день последние данные за месяц,
т.е. фильтр должен содержать StartTime >= CurrentDay - 30

Формат даты вот в таком виде:

runid OptimalVersion TestEnvironment StartTime Total Time E2E1058 7.4.4340.0 QAPerformanceVertica 2020-04-23:075849 50.7
Рытался сдалать вот так:
Код: sql
1.
2.
3.
4.
5.
6.
select [runid], [OptimalVersion] ,[TestEnvironment] ,[StartTime] ,[TestName] ,[Total Time E2E], 
                 from [PerformanceResults].[dbo].[BenchmarkTestsSummary] 
		 where TestEnvironment='QAPerformanceVertica'  and OptimalVersion like '7.4%' AND 
		 StartTime >= CAST(DATEPART(yyyy,getdate()) AS VARCHAR(4))+'-'+ DATEPART(year, DATEADD(DAY, -30, GETDATE()))
		 and TestName = 'Scenario1'
order by StartTime 


Conversion failed when converting the varchar value '2020-' to data type int.

Думал сделать проще через TOP (30), но вот тут загвоздка
- если делать DESC, то выдает с текущей даты - 30 в обратном порядке
- если делать напрямую, то берется 30 записей из конца таблицы

Как сделать, чтобы сортировка НЕ была обратной

StartTime2020-03-232020-03-242020-03-25.....2020-04-23
...
Рейтинг: 0 / 0
Фильтр по CurrentDate минус 30 days по возрастанию до текущей даты
    #39950439
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что на этот вопрос отвечает тот, кто придумал хранить даут время кривой строкой, а не в соответствующем типе данных?
...
Рейтинг: 0 / 0
Фильтр по CurrentDate минус 30 days по возрастанию до текущей даты
    #39950548
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vikonder
Думал сделать проще через TOP (30), но вот тут загвоздка
- если делать DESC, то выдает с текущей даты - 30 в обратном порядке
- если делать напрямую, то берется 30 записей из конца таблицы

Как сделать, чтобы сортировка НЕ была обратной
Так вам нужно просто взять топ 30?

Выберите TOP (30) DESC в подзапросе, а потом этот результат ASC снаружи


Vikonder
Conversion failed when converting the varchar value '2020-' to data type int.
А ошибка у вас из за того, что вы неправильно сделали конвертацию.
Попробуйте выполнить:
Код: sql
1.
2.
3.
select CAST(DATEPART(yyyy,getdate()) AS VARCHAR(4))+'-'+ DATEPART(year, DATEADD(DAY, -30, GETDATE()))
Msg 245, Level 16, State 1, Line 17
Conversion failed when converting the varchar value '2020-' to data type int.


Надо было сначала это выражение отдельно отладить, а потом уже вставлять в свой запрос
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтр по CurrentDate минус 30 days по возрастанию до текущей даты
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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