Как получить начало квартала в SQL?

Начало квартала в MS SQL Server’е можно получить следующим образом:

declare @d datetime = getdate()
set @d = dateadd(qq, datediff(qq, 0, @d), 0)
select @date

Здесь используется то, что функция datediff возвращает разницу в кварталах между “началом времен” в SQL и искомой датой. Затем к этому “началу времен” прибавляется разница в кварталах и получается начало квартала от нужной даты @date.
Функция будет иметь вид:

create function [dbo].[quarterStart]
(@d datetime)
returns datetime
as
begin
return (dateadd(qq, datediff(qq, 0, @d), 0))
end

Пример использования функции:
=Пример использования функции quarterStart

Оставить комментарий

Обязательные поля *

Вы можете использовать следующие HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>