指定された日時の月の初日のdatetime 型の値を返すユーザー定義関数です。
■実行例
4月10日から、月初 4月 1日を得ます
SELECT dbo.FirstDay('2004/4/10')結果: 2004/4/1
■ユーザー定義関数
CREATE FUNCTION FirstDay
(
@date datetime
)
RETURNS datetime
AS
BEGIN
-- 変数宣言
DECLARE @y int
DECLARE @m int
DECLARE @w datetime
-- 年と月を得る
SET @y = datepart(year, @date)
SET @m = datepart(month, @date)
-- 月初を得る
SET @w = convert(varchar, @y) + '/' + convert(varchar, @m) + '/1'
-- 結果を返す
RETURN @w
END