#sql-server #ssms-2016
#sql-сервер #ssms-2016
Вопрос:
Я могу получить точное значение за 3 года с помощью приведенного ниже кода (с 24.01.2018 по 25.01.2021)
select * from datamining.dbo.EmployeeDetails
where DateOfjoining >= DATEADD(year,-3,GETDATE())
Но я ожидаю, что результаты должны быть с 01/01/2018 по 25.01.2021 (до даты)
Как мне этого добиться?
Комментарии:
1. Получите текущий год, вычтите 3, затем используйте datefromparts .
2. И, возможно, пришло время изучить функции даты , доступные в tsql, прочитав документацию. Вы также можете использовать datepart, чтобы получить день года, вычесть [это значение — 1] из текущей даты, а затем вычесть из этого 3 года.
Ответ №1:
Много способов. Один из них заключается в объединении YEAR, который извлекает числовое значение year из date и DATEFROMPARTS, который создает дату из компонентов Year, Month и Day . НАПРИМЕР:
select * from datamining.dbo.EmployeeDetails
where DateOfjoining >= DATEFROMPARTS(YEAR(DATEADD(year,-3,GETDATE())),1,1)
Комментарии:
1. Это действительно сработало. Я хотел бы узнать об этом больше. Спасибо