Calculate the SQL statement of the last day of the last month of the given date.
Calculate the SQL statement of the last day of the last month of the given date.
Calculate the SQL statement of the last day of the last month of the given date.
Declare @ date datetime
Set @ date = getdate ()
-- The first day of the current month minus one day
Select dateadd (day,-1, dateadd (month, datediff (month, 0, @ date), 0) as 'last day of last month'
-- Another algorithm for the first day of the current month
Select dateadd (day,-1, dateadd (day, 1-datepart (day, @ date), @ date) 'last day of last month'
Select dateadd (day, 1-datepart (day, @ date), @ date)-1 'last day of last month'
-- In another algorithm, the last day of the current month cannot be used to add a month, because the current month may be 30 days.
-- Select dateadd (month, 1, '1970-06-30 ') -- The result is instead,
-- This is why the last-month algorithm minus one day next month
-- If the calculation month is 31 days, this problem does not occur.
-- For example, select dateadd (month, 1, '2017-05-31 ') -- The result is 2010
-- Therefore, the following algorithm is correct.-1 indicates '2017-12-31 00:00:00. 000' -- select convert (datetime,-1)
Select dateadd (month, datediff (month,-1, @ date)-1,-1)
-- Another current month Algorithm
Select dateadd (day,-1, dateadd (day, 1-datepart (day, @ date), @ date) 'last day of last month'
-- Simplified
Select dateadd (day, 0-datepart (day, @ date), @ date) 'last day of last month'
Go