Как извлекать значения с начала года в MS SQL

#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. Это действительно сработало. Я хотел бы узнать об этом больше. Спасибо