date関数 / time関数 / datetime関数

広告

date関数 / time関数 / datetime関数は日付と時刻を取得する為に使用します。書式は次の通りです。

date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)

1番目の引数に日付と時刻を表す文字列を指定すると、関数毎の指定のフォーマットに変換して値を返します。(modifierの指定方法は別のページで詳しく見ていきますのでここでは気にしないで下さい)。

各関数のフォーマットは次の通りです。

date関数      'YYYY-MM-DD'
time関数      'HH:MM:SS'
datetime関数  'YYYY-MM-DD HH:MM:SS'

date関数に日付と時刻を表す文字列を引数として渡すと、日付の部分だけを"YYYY-MM-DD"の形式で返します。time関数であれば時刻の部分だけを"HH:MM:SS"の形式で返します。datetime関数ならば日付と時刻の値を両方返します。

指定した日付と時刻のタイムゾーンはUTCとして扱われます。

具体的には次のように使用します。

select date('2009-08-24 23:10:15');      /* 2009-08-24 */
select time('2009-08-24 23:10:15');      /* 23:10:15 */
select datetime('2009-08-24 23:10:15');  /* 2009-08-24 23:10:15 */

1番目のSELECT文では日付の部分の'2009-08-24'を取得します。2番目のSELECT文では時刻の部分の'23:10:15'を取得します。3番目のSELECT文では日付+時刻を表す'2009-08-24 23:10:15'を取得します。

日付と時刻を表す文字列

date関数などの1番目の引数に指定する日付と時刻を表す文字列は次のいずれかの形式で指定します。

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD

例えば'2009-08-22'や'14:10:25'、または'2008-07-01 09:01:45'などです。時刻に関する値が省略された場合は'00:00:00.000'となります。また日付が省略された場合は'2000-01-01'となります。

'now'が指定すると現在の日時と時刻を設定します。(タイムゾーンはUTCです)。

'DDDDDDDDDD'はJulian day(ユリウス日)の形式です。これはグレゴリオ暦の紀元前4714年11月24日の正午からの通算日で指定するのですが詳しくは次のページの「julianday関数」で確認します。

サンプル

では実際に試してみます。

まず日付だけを指定してみます。

select
date('2009-08-25') as date,
time('2009-08-25') as time,
datetime('2009-08-25') as datetime;

p6-1

続いて日付と時刻を指定します。

select
date('2009-08-25 13:15:42') as date,
time('2009-08-25 13:15:42') as time,
datetime('2009-08-25 13:15:42') as datetime;

p6-2

続いて時刻だけを指定します。

select
date('13:15:42') as date,
time('13:15:42') as time,
datetime('13:15:42') as datetime;

p6-3

続いて'now'を指定します。

select
date('now') as date,
time('now') as time,
datetime('now') as datetime;

p6-4

最後にユリウス日を指定してみます。

select
date('1.25') as date,
time('1.25') as time,
datetime('1.25') as datetime;

p6-5

'-4713-11-25 18:00:00'とは紀元前4713年11月25日の午後6時のことです。

( Written by Tatsuo Ikura )