Sql-date-functions

提供:Dev Guides
移動先:案内検索

SQL-日付関数

次の表には、SQLを介して使用できるすべての重要な日付と時刻に関連する関数のリストがあります。 RDBMSでサポートされている他のさまざまな機能があります。 指定されたリストは、MySQL RDBMSに基づいています。

Sr.No. Function & Description
1

ADDDATE()

日付を追加します

2

ADDTIME()

時間を追加します

3

CONVERT_TZ()

あるタイムゾーンから別のタイムゾーンに変換します

4

CURDATE()

現在の日付を返します

5

CURRENT_DATE(), CURRENT_DATE

CURDATE()の同義語

6

CURRENT_TIME(), CURRENT_TIME

CURTIME()の同義語

7

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP

NOW()の同義語

8

CURTIME()

現在の時刻を返します

9

DATE_ADD()

2つの日付を追加します

10

DATE_FORMAT()

指定されたとおりに日付をフォーマットします

11

DATE_SUB()

2つの日付を減算します

12

DATE()

日付または日付時刻式の日付部分を抽出します

13

DATEDIFF()

2つの日付を減算します

14

DAY()

DAYOFMONTH()の同義語

15

DAYNAME()

曜日の名前を返します

16

DAYOFMONTH()

月の日(1〜31)を返します

17

DAYOFWEEK()

引数の曜日インデックスを返します

18

DAYOFYEAR()

年の日(1〜366)を返します。

19

EXTRACT

日付の一部を抽出します

20

FROM_DAYS()

日番号を日付に変換します

21

FROM_UNIXTIME()

日付をUNIXタイムスタンプとしてフォーマットします

22

HOUR()

時間を抽出します

23

LAST_DAY

引数の月の最後の日を返します

24

LOCALTIME(), LOCALTIME

NOW()の同義語

25

LOCALTIMESTAMP, LOCALTIMESTAMP()

NOW()の同義語

26

MAKEDATE()

年と日から日付を作成します

27

MAKETIME

時間を作ります()

28

MICROSECOND()

引数からマイクロ秒を返します

29

MINUTE()

引数から分を返します

30

MONTH()

渡された日付から月を返します

31

MONTHNAME()

月の名前を返します

32

NOW()

現在の日付と時刻を返します

33

PERIOD_ADD()

年月に期間を追加します

34

PERIOD_DIFF()

期間間の月数を返します

35

QUARTER()

日付引数から四半期を返します

36

SEC_TO_TIME()

秒を「HH:MM:SS」形式に変換します

37

SECOND()

2番目(0-59)を返します

38

STR_TO_DATE()

文字列を日付に変換します

39

SUBDATE()

3つの引数で呼び出された場合、DATE_SUB()の同義語

40

SUBTIME()

時間を引く

41

SYSDATE()

関数が実行される時間を返します

42

TIME_FORMAT()

時間としてフォーマット

43

TIME_TO_SEC()

秒に変換された引数を返します

44

TIME()

渡された式の時間部分を抽出します

45

TIMEDIFF()

時間を引く

46

TIMESTAMP()

引数が1つの場合、この関数は日付または日付時刻式を返します。 引数が2つの場合、引数の合計

47

TIMESTAMPADD()

日時式に間隔を追加します

48

TIMESTAMPDIFF()

日時式から間隔を減算します

49

TO_DAYS()

日付引数を日数に変換して返します

50

UNIX_TIMESTAMP()

UNIXタイムスタンプを返します

51

UTC_DATE()

現在のUTC日付を返します

52

UTC_TIME()

現在のUTC時間を返します

53

UTC_TIMESTAMP()

現在のUTC日時を返します

54

WEEK()

週番号を返します

55

WEEKDAY()

曜日のインデックスを返します

56

WEEKOFYEAR()

日付の暦週を返します(1-53)

57

YEAR()

年を返します

58

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 Expected exprFormat
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)

このコマンドは、フォーマット文字列に従って日付値をフォーマットします。

次の指定子をフォーマット文字列で使用できます。 書式指定文字の前に「%」文字が必要です。

Sr.No. Specifier & Description
1

%a

短縮された曜日名(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()*関数によって生成される内部タイムスタンプ値です。

書式が指定されている場合、結果は書式文字列に従って書式設定され、* 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)

日付の月のフルネームを返します。

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つの引数を使用して、日付式または日付時刻式 expr1 に時刻式expr2を追加し、結果を日付時刻値として返します。

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
  • 2分、分
  • 時、日
  • WEEK
  • QUARTERまたは
  • YEAR

ユニット値は、示されているキーワードの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)
  1. [#function_timestampdiff]"/></emphasis>#[function_timestampdiff]</emphasis>#

TIMESTAMPDIFF(unit、datetime_expr1、datetime_expr2)

日付式または日付時刻式datetime_expr1とdatetime_expr2の整数差を返します。 結果の単位は、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(日付[、モード])

この関数は、日付の週番号を返します。 WEEK()の2つの引数形式では、週が日曜日から始まるか月曜日から始まるか、および戻り値が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(日付、モード)

日付の年と週を返します。 モード引数は、WEEK()関数のモード引数とまったく同じように機能します。 結果の年は、年の最初と最後の週の日付引数の年と異なる場合があります。

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)を返すものとは異なります。