So-net無料ブログ作成
検索選択

SQLの基本-日付関数編 [SQL]

SQLの基本-日付関数編

日付関数は作成、更新の日時登録などでよく使います。 日付を扱う関数は多いのですが、よく使いそうなものをまとめました。

現在の日時を取得
・CURRENT_TIMESTAMP
・CURRENT_DATE
・CURRENT_TIME
・SYSDATE :Oracle
・SYSDATE() :MySQL
・GETDATE() :SQLServer
・NOW() :MySQL,PostgreSQL
CURRENT_****は括弧を使用しないで定数みたいに扱います。



日付要素の取得
書式:EXTRACT(日付要素 FROM 値式 )
戻値:要素に対する値
日付要素

Oracle MySQL PostgreSQL 内容
    'millennium' 千年紀
    'century' 世紀
    'decade' 10年
YEAR YEAR 'year'
    'quarter' 四半期
MONTH MONTH 'month'
    'week'
DAY DAY 'day'
HOUR HOUR 'hour'
MINUTE MINUTE 'minute'
SECOND SECOND 'second'
    'millisecond' ミリ秒
    'microseconds' マイクロ
    'dow' 曜日
    'doy' 年間通算日
    'epoch' 1970/1/1 00:00:00からの秒数
TIMEZONE_HOUR     タイムゾーン付き時
TIMEZONE_MINUTE     タイムゾーン付き分
TIMEZONE_REGION     タイムゾーン
TIMEZONE_ABBR     タイムゾーン略称
  YEAR_MONTH   年月
  DAY_HOUR   日時
  DAY_MINUTE   日時分
  DAY_SECOND   日時分秒
  HOUR_MINUTE   時分
  HOUR_SECOND   時分秒
  MINUTE_SECOND   分秒



日付要素の取得(SQLServer)
書式:DATEPART(日付要素, 値式 )
戻値:数値

書式:DATENAME(日付要素, 値式 )
戻値:文字列

日付要素

SQLServer 内容
year
quarter 四半期
week
day
hour
minute
second
millisecond ミリ秒
dayofyear 年間通算日
weekday 曜日



日付の書式指定
MySQL
書式:DATE_FORMAT(日付式, 書式文字 )
書式:TIME_FORMAT(日付式, 書式文字 )
戻値:文字列
Oracle
書式:TO_CHAR(日付式、書式文字)
戻値:文字列

書式文字

MySQL Oracle 内容
  E M:明治,T:大正,S:昭和,H:平成
  EE 明治,大正,昭和,平成
%Y YYYY 年(4桁)
%y YY 年(2桁)
%m MM 月(01~12)
%c FMMM 月(1~12)
%M   月(January,February,・・・)
  MONTH 月(1月、2月・・・12月)
%b   月(Jan,Feb,・・・)
  MON 月(1月、2月・・・12月)
%d dd 日(01~31)
%e FMdd 日(1~31)
%D   日(1st,2nd,3rd,,,31st)
%w   曜日(0:日曜~6:土曜)
%W   曜日(Sunday,Monday、・・・)
  DAY 曜日(日曜日,月曜日、・・・)
%a   曜日(Sun,Mon、・・・)
  DY 曜日(日,月、・・・)
%H HH24 時(00~23)
%k   時(0~23)
%h HH 時(01~12)
%l FMHH 時(1~12)
%p   AM,PM
  AM(A.M.) 午前,午後
%i MI 分(01~59)
%s FMMI 秒(0~59)
%S SS 秒(00~59)
%f   マイクロ秒(000000~999999)
%j   年間通算日(001~365)
%u   年間通算週:月曜から(00~53)
%U   年間通算週:日曜から(00~53)
%v   年間通算週:月曜から(01~53)
%V   年間通算週:日曜から(01~53)
%r HH:MI:SS AM 12 時間形式の時刻(hh:mm:ss に続けて AM または PM)
%T HH24:MI:SS 24 時間形式の時刻(hh:mm:ss)



日付の加減算
MySQL
書式:ADDDATE(日付式, 書式文字 )
書式:ADDTIME(日付式, 書式文字 )
戻値:文字列
Oracle(月単位の加減算)
書式:ADD_MONTHS(日付式、月数)
戻値:日付(DATE型)



日付の差を求める
MySQL
書式:DATEDIFF(日付式,日付式)
戻値:日数
Oracle
書式:MONTHS_BETWEEN(日付式,日付式)
戻値:月数



次の曜日を求める
Oracle
書式:NEXT_DAY(日付式,曜日)
書式:NEXT_DAY(日付式,週初めからの日数)
戻値:日付(DATE型)



月末を求める
Oracle,MySQL
書式:LAST_DAY (日付式)
戻値:日付(DATE型)


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。