忍者ブログ

ゆるいSEの小ネタ集

ゆるキャラ好きのITエンジニアが書くTips。 ゆるキャラ命なSEのIT徒然草 https://itmagic.hatenablog.com/

[SQLServer]日付関連操作

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

[SQLServer]日付関連操作

【日付フォーマット】
■現在日付
select GETDATE()
⇒2014-06-12 20:20:25.650

■YYYYMMDD
SELECT CONVERT(NVARCHAR, GETDATE(), 112);
⇒20140612

■YYMM
SELECT SUBSTRING(CONVERT(NVARCHAR, GETDATE(), 112),3,4);
⇒1405

[参考] http://msdn.microsoft.com/ja-jp/library/ms187928.aspx


【日付の加減算】
■日付-1
SELECT DATEADD(day, -1, '2014/06/13')   --2014-06-12
SELECT CONVERT(VARCHAR,DATEADD(day, 1, '2014/06/13'),112)  --20140612

■日付-1年前(YYYYMMDD形式)
SELECT CONVERT(VARCHAR,DATEADD(yyyy,-1,GETDATE()),112) 

■日付-1月前(YYYYMMDD形式)
SELECT CONVERT(VARCHAR,DATEADD(mm,-1,GETDATE()),112) 

■日付差分出力
select DATEDIFF(MONTH, '2015/04/01', '2015/06/01') AS datecount
結果:2  (2ヵ月)
【その他】
■当月月初の日
 SELECT CONVERT(DATETIME,LEFT(CONVERT(NVARCHAR, GETDATE(), 112),6) + '01')

■前月末日
 SELECT DATEADD(DAY,-1,CONVERT(DATETIME,LEFT(CONVERT(NVARCHAR, GETDATE(), 112),6) + '01'))

■前日日付の0時0分0秒を取得
SELECT DATEADD(DAY,-1,CONVERT(DATETIME,(CONVERT(VARCHAR,GetDate(),112))))
【日付項目の抽出】
■datetime型の抽出
例)2014/06/14に更新されたデータの抽出
SET @dateFrom = '2014-06-14';
SET @dateTo = '2014-06-14';

SELECT * FROM TABLEA
WHERE @dateFrom <= UPDDATE AND UPDDATE < DATEADD(day, 1, @dateTo)

※UPDDATEはdatetime型。
 変数はNVARCHAR。変数に与える形式はyyyy-mm-ddでもyyyy/mm/ddでもよい。
 datetime型と比較時に変数の時分秒部分00:00:00になるので、
 ToはDATEADDで+1日して、翌日00:00:00より以前、という条件で抽出している。
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
ゆるキャラ命
性別:
非公開

P R