SQLの窓

2019年02月13日


SQLServer の SQL でテーブルの日付が前月かどうかで条件を作成する

まず、dateadd と datepart の機能を確認する為の SQL が以下のようになります。

※ m と mm は month の省略形です
select
	cast('2019/01/01' as datetime),
	dateadd(month, -1, getdate()),
	dateadd(m, -1, getdate()),
	dateadd(mm, -1, getdate()),

	case
	when datepart(year, cast('2019/01/01' as datetime)) = datepart(year, dateadd(month, -1, getdate()))
	 	then '一致しました'
		else '一致しません'
	end as 年比較,

	case
	when datepart(month, cast('2019/01/01' as datetime)) = datepart(month, dateadd(month, -1, getdate()))
	 	then '一致しました'
		else '一致しません'
	end as 月比較

▼ これを踏まえて条件にしたものです。
select *

from [テーブル名]

where
	DATEPART(year, 対象日付) = DATEPART(year, DATEADD(m, -1, GETDATE()))
and	DATEPART(m, 対象日付) = DATEPART(m, DATEADD(m, -1, GETDATE()))


現在の年月日を getdate() で取得し、その月を一つマイナスして年部分と月部分を別々に取得して、比較したい日付の年部分と月部分がどちらも一致していたら、前月です。


関連する Microsoft ドキュメント

DATEADD (Transact-SQL)

DATEPART (Transact-SQL)

CAST および CONVERT (Transact-SQL)

CASE (Transact-SQL)




【システム開発の最新記事】
posted by lightbox at 2019-02-13 12:11 | システム開発 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり