DocDate1DocDate2LastDocDate1LastDocDate2FirstDateOfYearLastFirstDateOfYear
2022-10-012022-10-312021-10-012021-10-312022-01-012021-01-01
DECLARE @_DocDate1 DATE = '2022-10-01', @_DocDate2 DATE = '2022-10-15',
	@_LastDocDate1 DATE, @_LastDocDate2 DATE,
	@_FirstDateOfYear DATE, @_LastFirstDateOfYear DATE
 
SET @_DocDate1 = DATEADD(MONTH, DATEDIFF(MONTH, 0, @_DocDate1), 0)
SET @_DocDate2 = DATEADD(MONTH, DATEDIFF(MONTH, 0, @_DocDate2)+1, 0)-1
SET @_LastDocDate1 = DATEADD(YEAR,-1,@_DocDate1)
 
IF MONTH(@_DocDate2) = 2 AND MONTH(DATEADD(day, 1, @_DocDate2)) = 3
    SET @_LastDocDate2 = DATEADD(day, -1, CONVERT(date, '01/03/' + STR(YEAR(@_DocDate2) - 1, 4), 103))
ELSE
    SET @_LastDocDate2 = DATEADD(m, -12, @_DocDate2)
 
SET @_FirstDateOfYear = DATEADD(YEAR, DATEDIFF(YEAR, 0, @_DocDate1), 0)
SET @_LastFirstDateOfYear = DATEADD(YEAR, DATEDIFF(YEAR, 0, @_LastDocDate1), 0)
 
SELECT @_DocDate1 AS DocDate1, @_DocDate2 AS DocDate2,
	@_LastDocDate1 AS LastDocDate1, @_LastDocDate2 AS LastDocDate2,
	@_FirstDateOfYear AS FirstDateOfYear, @_LastFirstDateOfYear AS LastFirstDateOfYear
DocDateDocTimeResult
2026-02-012026-01-01 10:00:00.0002026-02-01 10:00:00.000
SELECT DATEADD(day,DATEDIFF(day,IsNull(DocTime,GETDATE()),DATEADD(DAY,5,DocDate)),IsNull(DocTime,GETDATE()))