河端善博 ブログ / SQL Server / PASSJ

SQL Server, .NET, PASSJ

  PASSJブログ :: ホーム :: 連絡をする :: RSS  :: ATOM :: Login
  945 投稿数 :: 112 ストーリー :: 1482 コメント :: 596 トラックバック

ニュース

Windows Live Alerts
My Yahoo!に追加
Add to Google dotnetnuke.jp
NPOPLUS.JP
MVP
PASSJ

記事のカテゴリ

過去の記事

カテゴリ

イメージギャラリ

.TEXT

INETA コミュニティ

MOM2005

MSMVP

PASSJ

SQL コミュニティ

セキュリティ TIPS

セキュリティのキホン

テスト

ブログ翻訳

多言語対応

.TEXT

INETA コミュニティ

MOM2005

MSMVP

PASSJ

SQL コミュニティ

セキュリティ TIPS

セキュリティのキホン

テスト

ブログ翻訳

多言語対応

指定された日時の月末の datetime 型の値を返します。

■実行例

4月10日から、月末 4月30日を得ます。

SELECT dbo.LastDay('2004/4/10')

結果: 2004-04-30 23:59:59.000

■ユーザー定義関数

CREATE FUNCTION LastDay
(
    @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'
    -- 翌月の初日を得る
    SET @w = DATEADD(m, 1, @w)
    -- 1秒前に戻す
    SET @w = DATEADD(s, -1, @w)
 
    -- 結果を返す
    RETURN @w
END

■時刻

時刻は、0:00 の1秒前にしました。
1ミリセカンド前にしようと思ったのですが..

投稿日時 : 2004年4月1日 17:01

コメントを追加

No comments posted yet.

コメント

タイトル:
名前:
Url:
コメント: