Mysql-date-time-functions
MySQL-日付と時刻の関数
シニア
名前と説明
1
リンク:/mysql/mysql-date-time-functions#function_adddate [ADDDATE()]
日付を追加します
2
リンク:/mysql/mysql-date-time-functions#function_addtime [ADDTIME()]
時間を追加します
3
リンク:/mysql/mysql-date-time-functions#function_convert-tz [CONVERT_TZ()]
あるタイムゾーンから別のタイムゾーンに変換します
4
リンク:/mysql/mysql-date-time-functions#function_curdate [CURDATE()]
現在の日付を返します
5
リンク:/mysql/mysql-date-time-functions#function_current-date [CURRENT_DATE()、CURRENT_DATE]
CURDATE()の同義語
6
リンク:/mysql/mysql-date-time-functions#function_current-time [CURRENT_TIME()、CURRENT_TIME]
CURTIME()の同義語
7
リンク:/mysql/mysql-date-time-functions#function_current-timestamp [CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP]
NOW()の同義語
8
リンク:/mysql/mysql-date-time-functions#function_curtime [CURTIME()]
現在の時刻を返します
9
リンク:/mysql/mysql-date-time-functions#function_date-add [DATE_ADD()]
2つの日付を追加します
10
リンク:/mysql/mysql-date-time-functions#function_date-format [DATE_FORMAT()]
指定されたとおりに日付をフォーマットします
11
リンク:/mysql/mysql-date-time-functions#function_date-sub [DATE_SUB()]
2つの日付を減算します
12
リンク:/mysql/mysql-date-time-functions#function_date [DATE()]
日付または日付時刻式の日付部分を抽出します
13
リンク:/mysql/mysql-date-time-functions#function_datediff [DATEDIFF()]
2つの日付を減算します
14
リンク:/mysql/mysql-date-time-functions#function_day [DAY()]
DAYOFMONTH()の同義語
15
リンク:/mysql/mysql-date-time-functions#function_dayname [DAYNAME()]
曜日の名前を返します
16
リンク:/mysql/mysql-date-time-functions#function_dayofmonth [DAYOFMONTH()]
月の日(1〜31)を返します
17
リンク:/mysql/mysql-date-time-functions#function_dayofweek [DAYOFWEEK()]
引数の曜日インデックスを返します
18
リンク:/mysql/mysql-date-time-functions#function_dayofyear [DAYOFYEAR()]
年の日(1〜366)を返します。
19
リンク:/mysql/mysql-date-time-functions#function_extract [EXTRACT]
日付の一部を抽出します
20
リンク:/mysql/mysql-date-time-functions#function_from-days [FROM_DAYS()]
日番号を日付に変換します
21
リンク:/mysql/mysql-date-time-functions#function_from-unixtime [FROM_UNIXTIME()]
日付をUNIXタイムスタンプとしてフォーマットします
22
リンク:/mysql/mysql-date-time-functions#function_hour [HOUR()]
時間を抽出します
23
リンク:/mysql/mysql-date-time-functions#function_last-day [LAST_DAY]
引数の月の最後の日を返します
24
リンク:/mysql/mysql-date-time-functions#function_localtime [LOCALTIME()、LOCALTIME]
NOW()の同義語
25
リンク:/mysql/mysql-date-time-functions#function_localtimestamp [LOCALTIMESTAMP、LOCALTIMESTAMP()]
NOW()の同義語
26
リンク:/mysql/mysql-date-time-functions#function_makedate [MAKEDATE()]
年と日から日付を作成します
27
リンク:/mysql/mysql-date-time-functions#function_maketime [MAKETIME]
時間を作ります()
28
リンク:/mysql/mysql-date-time-functions#function_microsecond [MICROSECOND()]
引数からマイクロ秒を返します
29
リンク:/mysql/mysql-date-time-functions#function_minute [MINUTE()]
引数から分を返します
30
リンク:/mysql/mysql-date-time-functions#function_month [MONTH()]
渡された日付から月を返します
31
リンク:/mysql/mysql-date-time-functions#function_monthname [MONTHNAME()]
月の名前を返します
32
リンク:/mysql/mysql-date-time-functions#function_now [NOW()]
現在の日付と時刻を返します
33
リンク:/mysql/mysql-date-time-functions#function_period-add [PERIOD_ADD()]
年月に期間を追加します
34
リンク:/mysql/mysql-date-time-functions#function_period-diff [PERIOD_DIFF()]
期間間の月数を返します
35
リンク:/mysql/mysql-date-time-functions#function_quarter [QUARTER()]
日付引数から四半期を返します
36
リンク:/mysql/mysql-date-time-functions#function_sec-to-time [SEC_TO_TIME()]
秒を「HH:MM:SS」形式に変換します
37
リンク:/mysql/mysql-date-time-functions#function_second [SECOND()]
2番目(0-59)を返します
38
リンク:/mysql/mysql-date-time-functions#function_str-to-date [STR_TO_DATE()]
文字列を日付に変換します
39
リンク:/mysql/mysql-date-time-functions#function_subdate [SUBDATE()]
3つの引数で呼び出された場合、DATE_SUB()の同義語
40
リンク:/mysql/mysql-date-time-functions#function_subtime [SUBTIME()]
時間を引く
41
リンク:/mysql/mysql-date-time-functions#function_sysdate [SYSDATE()]
関数が実行される時間を返します
42
リンク:/mysql/mysql-date-time-functions#function_time-format [TIME_FORMAT()]
時間としてフォーマット
43
リンク:/mysql/mysql-date-time-functions#function_time-to-sec [TIME_TO_SEC()]
秒に変換された引数を返します
44
リンク:/mysql/mysql-date-time-functions#function_time [TIME()]
渡された式の時間部分を抽出します
45
リンク:/mysql/mysql-date-time-functions#function_timediff [TIMEDIFF()]
時間を引く
46
リンク:/mysql/mysql-date-time-functions#function_timestamp [TIMESTAMP()]
引数が1つの場合、この関数は日付または日付時刻式を返します。 引数が2つの場合、引数の合計
47
リンク:/mysql/mysql-date-time-functions#function_timestampadd [TIMESTAMPADD()]
日時式に間隔を追加します
48
リンク:/mysql/mysql-date-time-functions#function_timestampdiff [TIMESTAMPDIFF()]
日時式から間隔を減算します
49
リンク:/mysql/mysql-date-time-functions#function_to-days [TO_DAYS()]
日付引数を日数に変換して返します
50
リンク:/mysql/mysql-date-time-functions#function_unix-timestamp [UNIX_TIMESTAMP()]
UNIXタイムスタンプを返します
51
リンク:/mysql/mysql-date-time-functions#function_utc-date [UTC_DATE()]
現在のUTC日付を返します
52
リンク:/mysql/mysql-date-time-functions#function_utc-time [UTC_TIME()]
現在のUTC時間を返します
53
リンク:/mysql/mysql-date-time-functions#function_utc-timestamp [UTC_TIMESTAMP()]
現在のUTC日時を返します
54
リンク:/mysql/mysql-date-time-functions#function_week [WEEK()]
週番号を返します
55
リンク:/mysql/mysql-date-time-functions#function_weekday [WEEKDAY()]
曜日のインデックスを返します
56
リンク:/mysql/mysql-date-time-functions#function_weekofyear [WEEKOFYEAR()]
日付の暦週を返します(1-53)
57
リンク:/mysql/mysql-date-time-functions#function_year [YEAR()]
年を返します
58
リンク:/mysql/mysql-date-time-functions#function_yearweek [YEARWEEK()]
年と週を返します
[function_adddate]#
ADDDATE(date、INTERVAL expr unit)、ADDDATE(expr、days)
2番目の引数の区間形式で呼び出された場合、ADDDATE()はDATE_ADD()の同義語です。 関連する関数SUBDATE()はDATE_SUB()の同義語です。 INTERVALユニット引数については、DATE_ADD()の説明を参照してください。
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
2番目の引数の日形式で呼び出された場合、MySQLはそれをexprに追加される整数の日数として扱います。
mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_addtime]#
ADDTIME(expr1、expr2)
ADDTIME()はexpr2をexpr1に追加し、結果を返します。 expr1は時刻または日付時刻式であり、expr2は時刻式です。
mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 1998-01-02 01:01:01.000001 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_convert-tz]#
CONVERT_TZ(dt、from_tz、to_tz)
これは、日時値dtをfrom_tzで指定されたタイムゾーンからto_tzで指定されたタイムゾーンに変換し、結果の値を返します。 引数が無効な場合、この関数はNULLを返します。
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET') |
+---------------------------------------------------------+
| 2004-01-01 13:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00') |
+---------------------------------------------------------+
| 2004-01-01 22:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_curdate]#
CURDATE()
関数が文字列または数値コンテキストで使用されているかどうかに応じて、現在の日付を「YYYY-MM-DD」またはYYYYMMDD形式の値として返します。
mysql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE() |
+---------------------------------------------------------+
| 1997-12-15 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
| CURDATE() + 0 |
+---------------------------------------------------------+
| 19971215 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_current-date]#
CURRENT_DATEおよびCURRENT_DATE()
CURRENT_DATEおよびCURRENT_DATE()はCURDATE()の同義語です
[function_curtime]#
CURTIME()
関数が文字列または数値コンテキストのどちらで使用されているかに応じて、現在の時刻を 'HH:MM:SS’またはHHMMSS形式の値として返します。 値は現在のタイムゾーンで表されます。
mysql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME() |
+---------------------------------------------------------+
| 23:50:26 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
| CURTIME() + 0 |
+---------------------------------------------------------+
| 235026 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_current-time]#
CURRENT_TIMEおよびCURRENT_TIME()
CURRENT_TIMEとCURRENT_TIME()はCURTIME()の同義語です。
[function_current-timestamp]#
CURRENT_TIMESTAMPおよびCURRENT_TIMESTAMP()
CURRENT_TIMESTAMPとCURRENT_TIMESTAMP()はNOW()の同義語です。
[function_date]#
DATE(expr)
日付または日付時刻式exprの日付部分を抽出します。
mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
| DATE('2003-12-31 01:02:03') |
+---------------------------------------------------------+
| 2003-12-31 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_datediff]#
DATEDIFF(式1、式2)
DATEDIFF()はexpr1を返します。 expr2は、ある日付から別の日付までの日数で表されます。 expr1とexpr2は、日付式または日時式です。 値の日付部分だけが計算に使用されます。
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_date-add]#
DATE_ADD(日付、時間隔式単位)、DATE_SUB(日付、時間隔式単位)
これらの関数は日付計算を実行します。 dateは、開始日を指定するDATETIMEまたはDATE値です。 exprは、開始日から加算または減算される間隔値を指定する式です。 exprは文字列です。負の間隔の場合は「-」で始まる場合があります。 unitは、式を解釈する単位を示すキーワードです。
INTERVALキーワードと単位指定子では、大文字と小文字は区別されません。
次の表は、各ユニット値のexpr引数の予想される形式を示しています。
unit Value | Expectedexpr*Format * |
---|---|
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTERS |
YEAR | YEARS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
値QUARTERおよびWEEKは、MySQL 5.0.0以降で使用できます。
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
-> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL... |
+---------------------------------------------------------+
| 1998-01-01 00:01:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR) |
+---------------------------------------------------------+
| 1999-01-01 01:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_date-format]#
DATE_FORMAT(date、format)
フォーマット文字列に従って日付値をフォーマットします。
次の指定子をフォーマット文字列で使用できます。 。%。 文字は、フォーマット指定文字の前に必要です。
S. No. | Specifier & Description |
---|---|
1 |
短縮された曜日名(Sun..Sat) |
2 |
%b 短縮された月名(Jan..Dec) |
3 |
%c 月、数値(0..12) |
4 |
%D 英語の接尾辞(0th、1st、2nd、3rd 、.)が付いた日付 |
5 |
%d 月の日、数値(00..31) |
6 |
%e 月の日、数値(0..31) |
7 |
%f マイクロ秒(000000..999999) |
8 |
%H 時間(00..23) |
9 |
%h 時間(01..12) |
10 |
%I 時間(01..12) |
11 |
%i 分、数値(00..59) |
12 |
%j 年の日(001..366) |
13 |
%k 時間(0..23) |
14 |
%l 時間(1..12) |
15 |
%M 月の名前(1月から12月) |
16 |
%m 月、数値(00..12) |
17 |
%p 午前または午後 |
18 |
%r 時間、12時間(hh:mm:ssの後にAMまたはPMが続く) |
19 |
%S 秒(00..59) |
20 |
%s 秒(00..59) |
21 |
%T 時間、24時間(hh:mm:ss) |
22 |
%U 週(00..53)、日曜日が週の最初の日 |
23 |
%u 週(00..53)、月曜日が週の最初の日 |
24 |
%V 週(01..53)。日曜日が週の最初の日です。 %Xで使用 |
25 |
%v 週(01..53)。月曜日が週の最初の日です。 %xで使用 |
26 |
%W 曜日名(日曜日から土曜日) |
27 |
%w 曜日(0 =日曜日..6 =土曜日) |
28 |
%X 週の年。日曜日が週の最初の日、数値、4桁。 %Vで使用 |
29 |
%x 週の年。月曜日が週の最初の日、数値、4桁。 %vで使用 |
30 |
%Y 年、数値、4桁 |
31 |
%y 年、数値(2桁) |
32 |
% リテラル。%。 キャラクター |
33 |
%x x、any.xの場合。 上にリストされていない |
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') |
+---------------------------------------------------------+
| Saturday October 1997 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
-> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00....... |
+---------------------------------------------------------+
| 22 22 10 10:23:00 PM 22:23:00 00 6 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_date-sub]#
DATE_SUB(date、INTERVAL expr unit)
これはDATE_ADD()関数に似ています。
[function_day]#
DAY(日付)
DAY()はDAYOFMONTH()の同義語です。
[function_dayname]#
DAYNAME(日付)
日付の曜日の名前を返します。
mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05') |
+---------------------------------------------------------+
| Thursday |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_dayofmonth]#
DAYOFMONTH(date)
日付の月の日を0〜31の範囲で返します。
mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_dayofweek]#
DAYOFWEEK(日付)
日付の曜日インデックスを返します(1 =日曜日、2 =月曜日、。、7 =土曜日)。 これらのインデックス値は、ODBC標準に対応しています。
mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
| DAYOFWEEK('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_dayofyear]#
DAYOFYEAR(日付)
dateの年間通算日を1〜366の範囲で返します。
mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03') |
+---------------------------------------------------------+
| 34 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_extract]#
抽出(単位FROM日付)
EXTRACT()関数は、DATE_ADD()またはDATE_SUB()と同じ種類の単位指定子を使用しますが、日付の計算を実行するのではなく、日付から部分を抽出します。
mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
| EXTRACT(YEAR FROM '1999-07-02') |
+---------------------------------------------------------+
| 1999 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
| EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03') |
+---------------------------------------------------------+
| 199907 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_from-days]#
FROM_DAYS(N)
日番号Nを指定すると、DATE値を返します。
mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669) |
+---------------------------------------------------------+
| 1997-10-07 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
古い日付では、FROM_DAYS()を注意して使用してください。 グレゴリオ暦(1582)の出現に先行する値で使用するためのものではありません。
[function_from-unixtime]#
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp、format)
関数が文字列コンテキストで使用されるか、数値コンテキストで使用されるかに応じて、unix_timestamp引数の表現を 'YYYY-MM-DD HH:MM:SS’またはYYYYMMDDHHMMSS形式の値として返します。 値は現在のタイムゾーンで表されます。 unix_timestampは、UNIX_TIMESTAMP()関数によって生成されるような内部タイムスタンプ値です。
formatが指定されている場合、結果はフォーマット文字列に従ってフォーマットされ、DATE_FORMAT()関数のエントリにリストされているのと同じ方法で使用されます。
mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580) |
+---------------------------------------------------------+
| 1997-10-04 22:23:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_hour]#
HOUR(時間)
時間の時間を返します。 時刻値の戻り値の範囲は0〜23です。 ただし、TIME値の範囲は実際にははるかに広いため、HOURは23より大きい値を返すことができます。
mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03') |
+---------------------------------------------------------+
| 10 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_last-day]#
LAST_DAY(日付)
日付または日時の値を取得し、月の最終日に対応する値を返します。 引数が無効な場合はNULLを返します。
mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05') |
+---------------------------------------------------------+
| 2003-02-28 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_localtime]#
LOCALTIMEおよびLOCALTIME()
LOCALTIMEとLOCALTIME()はNOW()の同義語です。
[function_localtimestamp]#
LOCALTIMESTAMPおよびLOCALTIMESTAMP()
LOCALTIMESTAMPとLOCALTIMESTAMP()はNOW()の同義語です。
[function_makedate]#
MAKEDATE(年、日)
年と曜日の値を指定して、日付を返します。 dayofyearは0より大きい必要があります。そうでない場合、結果はNULLになります。
mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
| MAKEDATE(2001,31), MAKEDATE(2001,32) |
+---------------------------------------------------------+
| '2001-01-31', '2001-02-01' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_maketime]#
MAKETIME(時間、分、秒)
時間、分、秒の引数から計算された時間値を返します。
mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30) |
+---------------------------------------------------------+
| '12:15:30' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_microsecond]#
MICROSECOND(expr)
時刻または日付時刻式exprからマイクロ秒を0〜999999の範囲の数値として返します。
mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456') |
+---------------------------------------------------------+
| 123456 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_minute]#
MINUTE(時間)
時間の分を0〜59の範囲で返します。
mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03') |
+---------------------------------------------------------+
| 5 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_month]#
MONTH(date)
日付の月を0〜12の範囲で返します。
mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_monthname]#
MONTHNAME(date)
dateの月のフルネームを返します。
mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05') |
+---------------------------------------------------------+
| February |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_now]#
NOW()
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、「YYYY-MM-DD HH:MM:SS」またはYYYYMMDDHHMMSS形式の値として現在の日付と時刻を返します。 値は現在のタイムゾーンで表されます。
mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW() |
+---------------------------------------------------------+
| 1997-12-15 23:50:26 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_period-add]#
PERIOD_ADD(P、N)
期間PにNか月を追加します(形式YYMMまたはYYYYMM)。 YYYYMM形式で値を返します。 期間引数Pは日付値ではないことに注意してください。
mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2) |
+---------------------------------------------------------+
| 199803 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_period-diff]#
PERIOD_DIFF(P1、P2)
期間P1とP2の間の月数を返します。 P1とP2は、YYMMまたはYYYYMMの形式でなければなりません。 期間引数P1とP2は日付値ではありません。
mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703) |
+---------------------------------------------------------+
| 11 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_quarter]#
QUARTER(日付)
dateの年の四半期を1〜4の範囲で返します。
mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_second]#
2回目)
時間の秒を0〜59の範囲で返します。
mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_sec-to-time]#
SEC_TO_TIME(秒)
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、「HH:MM:SS」またはHHMMSS形式の値として、秒、引数を時間、分、および秒に変換して返します。
mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378) |
+---------------------------------------------------------+
| 00:39:38 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_str-to-date]#
STR_TO_DATE(文字列、フォーマット)
これは、DATE_FORMAT()関数の逆です。 文字列strとフォーマット文字列formatを取ります。 STR_TO_DATE()は、書式文字列に日付と時刻の両方の部分が含まれる場合はDATETIME値を返し、文字列に日付または時刻の部分のみが含まれる場合はDATEまたはTIME値を返します。
mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
| STR_TO_DATE('04/31/2004', '%m/%d/%Y') |
+---------------------------------------------------------+
| 2004-04-31 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_subdate]#
SUBDATE(date、INTERVAL expr unit)およびSUBDATE(expr、days)
2番目の引数の区間形式で呼び出された場合、SUBDATE()はDATE_SUB()の同義語です。 INTERVALユニット引数については、DATE_ADD()の説明を参照してください。
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1997-12-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| SUBDATE('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1997-12-02 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_subtime]#
SUBTIME(expr1、expr2)
SUBTIME()はexpr1を返します。 expr1は、expr1と同じ形式の値として表されます。 expr1は時刻または日付時刻式であり、expr2は時刻です。
mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
-> '1 1:1:1.000002');
+---------------------------------------------------------+
| SUBTIME('1997-12-31 23:59:59.999999'... |
+---------------------------------------------------------+
| 1997-12-30 22:58:58.999997 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_sysdate]#
SYSDATE()
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、「YYYY-MM-DD HH:MM:SS」またはYYYYMMDDHHMMSS形式の値として現在の日付と時刻を返します。
mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE() |
+---------------------------------------------------------+
| 2006-04-12 13:47:44 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_time]#
TIME(expr)
時刻または日付時刻式exprの時刻部分を抽出し、文字列として返します。
mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
| TIME('2003-12-31 01:02:03') |
+---------------------------------------------------------+
| 01:02:03 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_timediff]#
TIMEDIFF(expr1、expr2)
TIMEDIFF()はexpr1を返します。 expr2は時間値として表されます。 expr1とexpr2は時刻式または日時式ですが、両方とも同じタイプでなければなりません。
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
| TIMEDIFF('1997-12-31 23:59:59.000001'..... |
+---------------------------------------------------------+
| 46:58:57.999999 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_timestamp]#
TIMESTAMP(expr)、TIMESTAMP(expr1、expr2)
引数が1つの場合、この関数は日付または日付時刻式exprを日付時刻値として返します。 2つの引数を指定すると、時間式expr2を日付式または日時式expr1に追加し、結果を日時値として返します。
mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31') |
+---------------------------------------------------------+
| 2003-12-31 00:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_timestampadd]#
TIMESTAMPADD(unit、interval、datetime_expr)
日付または日付時刻式datetime_exprに整数式間隔を追加します。 間隔の単位は、FRAC_SECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEARのいずれかの値であるunit引数によって指定されます。
単位値は、示されているキーワードの1つを使用するか、SQL_TSI_のプレフィックスを使用して指定できます。 たとえば、DAYとSQL_TSI_DAYは両方とも有効です。
mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
| TIMESTAMPADD(MINUTE,1,'2003-01-02') |
+---------------------------------------------------------+
| 2003-01-02 00:01:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
- [#function_timestampdiff]"/></emphasis>#[function_timestampdiff]</emphasis>#
TIMESTAMPDIFF(unit、datetime_expr1、datetime_expr2)
日付式または日付時刻式datetime_expr1とdatetime_expr2の整数差を返します。 結果の単位は、unit引数によって指定されます。 unitの有効な値は、TIMESTAMPADD()関数の説明にリストされているものと同じです。
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
| TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_time-format]#
TIME_FORMAT(時間、形式)
これはDATE_FORMAT()関数と同様に使用されますが、フォーマット文字列には、時間、分、および秒のフォーマット指定子のみを含めることができます。
時間値に23より大きい時間部分が含まれている場合、%Hおよび%k時間形式指定子は、通常の範囲である0..23よりも大きい値を生成します。 他の時間形式指定子は、12を法とする時間値を生成します。
mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
| TIME_FORMAT('100:00:00', '%H %k %h %I %l') |
+---------------------------------------------------------+
| 100 100 04 04 4 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_time-to-sec]#
TIME_TO_SEC(時間)
秒に変換された時間引数を返します。
mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00') |
+---------------------------------------------------------+
| 80580 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_to-days]#
今日の日付)
日付を指定すると、日数(0年からの日数)を返します。
mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501) |
+---------------------------------------------------------+
| 728779 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_unix-timestamp]#
UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)
引数なしで呼び出された場合、UNIXタイムスタンプ( '1970-01-01 00:00:00' UTCからの秒数)を符号なし整数として返します。 UNIX_TIMESTAMP()が日付引数で呼び出された場合、 '1970-01-01 00:00:00' UTCからの秒数として引数の値を返します。 日付は、DATE文字列、DATETIME文字列、TIMESTAMP、またはYYMMDDまたはYYYYMMDD形式の数値です。
mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
| UNIX_TIMESTAMP() |
+---------------------------------------------------------+
| 882226357 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------------------------+
| 875996580 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_utc-date]#
UTC_DATE、UTC_DATE()
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、現在のUTC日付を 'YYYY-MM-DD’またはYYYYMMDD形式の値として返します。
mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
| UTC_DATE(), UTC_DATE() + 0 |
+---------------------------------------------------------+
| 2003-08-14, 20030814 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_utc-time]#
UTC_TIME、UTC_TIME()
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、現在のUTC時間を 'HH:MM:SS’またはHHMMSS形式の値として返します。
mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
| UTC_TIME(), UTC_TIME() + 0 |
+---------------------------------------------------------+
| 18:07:53, 180753 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_utc-timestamp]#
UTC_TIMESTAMP、UTC_TIMESTAMP()
関数が文字列コンテキストで使用されるか数値コンテキストで使用されるかに応じて、現在のUTC日付と時刻を 'YYYY-MM-DD HH:MM:SS’またはYYYYMMDDHHMMSS形式の値として返します。
mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
| UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0 |
+---------------------------------------------------------+
| 2003-08-14 18:08:04, 20030814180804 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_week]#
WEEK(日付[、モード])
この関数は、日付の週番号を返します。 引数が2つの形式のWEEK()を使用すると、週を日曜日から開始するか月曜日から開始するか、および戻り値を0から53または1から53の範囲にするかを指定できます。 mode引数が省略された場合、default_week_formatシステム変数の値が使用されます
Mode | First Day of week | Range | Week 1 is the first week. |
---|---|---|---|
0 | Sunday | 0-53 | with a Sunday in this year |
1 | Monday | 0-53 | with more than 3 days this year |
2 | Sunday | 1-53 | with a Sunday in this year |
3 | Monday | 1-53 | with more than 3 days this year |
4 | Sunday | 0-53 | with more than 3 days this year |
5 | Monday | 0-53 | with a Monday in this year |
6 | Sunday | 1-53 | with more than 3 days this year |
7 | Monday | 1-53 | with a Monday in this year |
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20') |
+---------------------------------------------------------+
| 7 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_weekday]#
週末(日)
日付の曜日インデックスを返します(0 =月曜日、1 =火曜日、。 6 =日曜日)。
mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00') |
+---------------------------------------------------------+
| 1 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_weekofyear]#
WEEKOFYEAR(日付)
日付の暦週を1〜53の範囲の数値として返します。 WEEKOFYEAR()は、WEEK(date、3)と同等の互換性関数です。
mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20') |
+---------------------------------------------------------+
| 8 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_year]#
YEAR(日付)
日付の年を1000〜9999の範囲で、または.zeroの場合は0を返します。 日付。
mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03') |
+---------------------------------------------------------+
| 1998 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
[function_yearweek]#
YEARWEEK(日付)、YEARWEEK(日付、モード)
日付の年と週を返します。 mode引数は、WEEK()のmode引数とまったく同じように機能します。 結果の年は、年の最初と最後の週の日付引数の年と異なる場合があります。
mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01') |
+---------------------------------------------------------+
| 198653 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
WEEK()は指定された年のコンテキストで週を返すため、週番号はWEEK()関数がオプション引数0または1に対して(0)を返すものとは異なることに注意してください。
詳細については、http://dev.mysql.com/doc/en/Date_and_time_functionsl [MySQL Official Website-Date and Time Functions]を確認してください