分かりやすく、使いやすく。

月初の日付を計算する方法

スポンサーリンク

SQL Server 2008 R2 では月初の日付を計算する関数は用意されていないため、DAY 関数で取得した月初からの経過日数を差し引いて月初の日付を計算します。

tsql(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--テーブル変数(@MY_DATE)を宣言
DECLARE @MY_DATE TABLE(
  MY_DATETIME DATETIME  
);
 
-- テスト用の日付データーを挿入
INSERT INTO @MY_DATE VALUES
   --2015/01 ~ 2015/12
   ('2015/01/05'), ('2015/02/08'), ('2015/03/15'),
   ('2015/04/18'), ('2015/05/20'), ('2015/06/25'),
   ('2015/07/26'), ('2015/08/31'), ('2015/09/01'),
   ('2015/10/30'), ('2015/11/02'), ('2015/12/15');
 
--月初の日付の計算
SELECT
    MY_DATETIME
    --日の部分のみ取り出し
  , DAY(MY_DATETIME)
    --月初の日付を表示
  , DATEADD(DAY, DAY(MY_DATETIME) * - 1 + 1, MY_DATETIME)
FROM 
  @MY_DATE  
スポンサーリンク