TSQL Get the first day of the month – TSQL 取得這個月的第一天

今天需要寫一個功能找出被輸入的月份的第一天和最後一天是什麼日子
原來解決方法十分簡單
我寫了一個TSQL 的功能 用來方便自己找出來

我取他的名字為 GenerateFirstDayOfMonth

-- =============================================
-- Author:		<ShareChiWai>
-- Create date: <2012-08-23>
-- Description:	<This function is used to retrieve the first day of the month>
-- =============================================
CREATE FUNCTION [dbo].[GenerateFirstDayOfMonth]
(
	---- 用來設定開始的月份和年份
	@TempDate DATETIME =null,
	---- 這個變用來給Offset 大家可以用來找出數個月前或後的 First date of the mont
	@MonthInAdvance INT = 0
)
RETURNS DATETIME
AS
BEGIN
	-- Return the result of the function
	RETURN  DateAdd(day, 0,  DateAdd(month, MONTH(@TempDate)-1+@MonthInAdvance,  DateAdd(Year, YEAR(@TempDate)-1900, 0)))

END

使用方法十分簡單

SELECT dbo.[GenerateFirstDayOfMonth](GETDATE(),0);

輸出的結果會是:
2012-08-01 00:00:00.000

SELECT dbo.[GenerateFirstDayOfMonth](GETDATE(),2);

輸出的結果會是:
2012-10-01 00:00:00.000

如果你有更好的方法歡迎和大家分享

有興趣的朋友可以按下以下網址參考Part 2 TSQL 取得這個月最後的一天

TSQL Get the last day of the month – TSQL 取得這個月最後的一天 

Hope you find it useful

One thought on “TSQL Get the first day of the month – TSQL 取得這個月的第一天

  1. Pingback: TSQL Get the last day of the month – TSQL 取得這個月最後的一天 | Share ChiWai/Share 智慧/智慧分享 – 技術分享/Tech Blog

Leave a Reply