GNU/Linux >> Linux の 問題 >  >> Cent OS

例を含むMySQL日付関数ガイド

はじめに

MySQLには、データを操作できる多くの組み込み関数が付属しています。これらの関数は、日付関数、文字列関数、数学関数などのカテゴリにグループ化されています。

日付関数は、MySQLで日付、時刻、および日時の式を変更、計算、および変換する方法に関する多数のオプションを提供します。

このチュートリアルでは、MySQLの日付と時刻の関数と、それらがどのように機能するかについて、実際の例で学習します。

日付関連の関数

CURDATEまたはCURRENT_DATE

CURDATEを使用して、現在の日付を「YYY-MM-DD」または「YYYYMMDD」形式で返します。 またはCURRENT_DATE コマンド。

基本構文:

CURDATE();

たとえば、次の場合:

SELECT CURDATE();

MySQLは、次の形式で現在の日付で応答します:

2021-01-17

日付

DATEを使用して、日時式から日付を返します コマンド。

基本構文:

DATE(datetime);

たとえば、次の場合:

SELECT DATE('2021-01-17 10:12:16');

出力は次のとおりです。

2021-01-17

DATE_ADDまたはADDDATE

DATE_ADDを使用して、日付式に時刻/日付値を追加します またはADDDATE 機能。

基本構文:

DATE_ADD(date, INTERVAL value unit);

日付を置き換えます 時刻/日付を追加する日付式を使用します。 値の単位 追加する日時です。値の単位とともに数値で表現する必要があります。

ユニット 可能性があります:

  • 2番目
  • 時間
  • 四半期
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

たとえば、次の場合:

SELECT DATE_ADD('2021-01-17 07:14:21', INTERVAL 20 MINUTE);

出力は結果を返します:

2021-01-17 07:34:21

DATE_FORMAT

DATE_FORMATを使用して日付をフォーマットします

基本構文:

DATE_FORMAT(date, format);

日付 は再フォーマットする日付式ですが、フォーマット 次の指定子の組み合わせです:

たとえば、次の場合:

SELECT DATE_FORMAT('2021-01-17', '%W %M %Y');

出力には結果が表示されます:

Sunday January 2021

DATE_SUBまたはSUBDATE

DATE_SUBを使用して、時刻/日付の値を日付式に減算します またはSUBDATE 機能。

基本的な構文:

DATE_SUB(date, INTERVAL value unit);

日付を置き換えます 減算する日付式を使用します。 値の単位 減算する日時です。値の単位とともに数値で表す必要があります。

ユニットタイプのリストを検索する DATE_ADDセクションにあります。

たとえば、次の場合:

SELECT DATE_SUB('2021-01-17 07:14:21', INTERVAL 1 HOUR);

出力は結果を返します:

2021-01-17 06:14:21

DATEDIFF

DATEDIFFを使用して2つの日付式の間の日数を返します 機能。

基本的な構文:

DATEDIFF(date1,date2);

例:

SELECT DATEDIFF('2021-01-23','2021-01-14');

結果を返します:

9

抜粋

日付/日時式の一部を抽出するには、 EXTRACTを使用します 機能。

基本構文:

EXTRACT(unit FROM date);

コマンドでは、どのユニットを指定する必要があります 指定した日付から抽出する

DATE_ADDの説明で使用できる単位のリストを見つけてください。

たとえば、実行する場合:

SELECT EXTRACT(DAY FROM '2021-01-26');

結果が得られます:

26

GET_FORMAT

GET_FORMATの引数で指定されたフォーマット文字列(指定子の組み合わせ)を返します 。この関数は、 DATE_FORMATでよく使用されます

基本的な構文:

GET_FORMAT(DATE/TIME/DATETIME,format)

この関数は、日付、時刻、および日時の式で使用します。

形式 可能性があります:

  • 「EUR」
  • 「USA」
  • 「JIS」
  • 「ISO」
  • 「内部」

GET_FORMATを使用して取得できる結果の数には限りがあります。 働き。以下に、すべての関数呼び出しとその結果のリストを示します。

たとえば、関数を DATE_FORMATと組み合わせることができます。 、次の例のように:

SELECT DATE_FORMAT('2021-01-26', GET_FORMAT(DATE,'EUR'));

結果は次のとおりです:

26.01.2021

MAKEDATE

MAKEDATEを使用して、指定した年と日から日付式を返します 機能。

基本構文:

MAKEDATE(year,day);

たとえば、次の場合:

SELECT MAKEDATE(2021,34);

出力には結果が表示されます:

2021-02-03

STR_TO_DATE

STR_TO_DATEを使用して文字列から日付をフォーマットします 日付/日時の値を返します。

基本構文:

STR_TO_DATE(string, format);

文字列 フォーマットが再フォーマットしたいものです 文字列の各要素を説明する指定子の組み合わせです。

指定子とその意味のリストは、DATE_FORMATセクションにあります。

たとえば、次の場合:

SELECT STR_TO_DATE('January,25,2021', '%M %e %Y');

出力は次のようになります:

2021-01-25

SYSDATE

現在の日付と時刻を「YYYY-MM-DDhh:mm:ss」または「YYYYMMDDHHMMSS.uuuuuu」の形式で返すには、 SYSDATEを使用します。 機能。

基本構文:

SYSDATE();

fspを追加できます 小数秒の精度(0〜6)を含める引数。その場合、構文は SYSDATE(fsp);です。

以下に示すコマンド:

SELECT SYSDATE();

この時点で結果が得られます:

2021-01-25 20:21:04

UTC_DATE

UTC_DATEを使用して、現在の協定世界時(UTC)の日付値を「YYYY-MM-DD」または「YYYYMMDD」形式で返します。 機能。

基本構文:

UTC_DATE();

たとえば、次のコマンドを実行します。

SELECT UTC_DATE();

現在の日付を返します:

2021-01-25

時間関連の関数

追加時間

ADDTIMEを使用して、指定した時刻/日時式に時間間隔を追加します

基本構文:

ADDTIME(datetime, timevalue)

たとえば、次の場合:

SELECT ADDTIME('2021-01-25 08:13:11.000021', '3:14:32.000006');

結果が得られます:

2021-01-25 11:27:43.000027

CONVERT_TZ

ADDTIMEを使用して、時刻/日時式をあるタイムゾーンから別のタイムゾーンに変換します 機能。

基本構文:

CONVERT_TZ(datetime, from_timezone,to_timezone)

たとえば、実行する場合:

SELECT CONVERT_TZ('2021-01-25 10:12:00','+00:00','+10:00');

MySQLは、指定された日時を+10:00タイムゾーンに変換します:

2021-01-25 20:12:00

CURTIMEまたはCURRENT_TIME

CURTIMEを使用して現在の時刻を返します またはCURRENT_TIME 働き。結果は、「hh:mm:ss」または「hhmmss」形式で時刻を返します。

基本構文:

CURTIME();

fspを追加することで、小数秒の精度(0から6)を含めることができます。 引数。

たとえば、次のコマンドは、現在の時刻を小数秒の精度で表示します。

CURTIME(3);

出力は次の結果で応答します:

15:19:07.340

時間

HOURを使用して、指定した時刻/日時の時間を返します 機能。

基本構文:

HOUR(datetime);

たとえば、次の場合:

SELECT HOUR('08:40:07');

結果は次のとおりです。

8

MAKETIME

MAKETIMEを使用して、指定した時間、分、秒の値から時間式を返します 機能。

基本構文:

MAKETIME(hour, minute, second);

たとえば、次のように実行できます。

SELECT MAKETIME(09,25,00);

出力が表示される場所:

09:25:00

マイクロ秒

MICROSECONDを使用して指定された時刻/日時式のマイクロ秒を返します

基本構文:

MICROSECOND(datetime);

たとえば、次のように実行できます。

SELECT MICROSECOND('2021-01-21 10:23:44.000040');

結果は次のとおりです:

40

MINUTEを使用して、指定された時刻/日時式の分を返します 機能。

基本構文:

MINUTE(datetime);

たとえば、次のコマンドを実行した場合:

SELECT MINUTE('10:23:44');

結果は次のとおりです。

23

SEC_TO_TIME

SEC_TO_TIMEを使用して、指定された秒値から時間値を返します 機能。

基本構文:

SEC_TO_TIME(seconds);

たとえば、次のコマンドを実行した場合:

SELECT SEC_TO_TIME(8897);

出力は次のとおりです。

02:28:17

サブタイム

SUBTIMEを使用して、時刻/日時式から時刻値を減算します 機能。

基本構文:

SUBTIME(datetime,timevalue);

たとえば、実行する場合:

SELECT SUBTIME('2021-01-21 21:24:00','2:20:1');

出力は次のとおりです。

2021-01-21 19:03:59

時間

日時式から時刻の値を返すには、 TIMEを使用します 機能。

基本構文:

TIME(datetime);

例:

SELECT TIME('2021-01-22 13:38:10');

結果が得られます:

13:38:10

TIME_FORMAT

TIME_FORMATを使用して、時間値を指定された形式にフォーマットします

基本構文:

TIME_FORMAT(time,format);

形式 指定子の組み合わせです。すべての指定子とその意味のリストは、DATE_FORMAT関数の説明にあります。

たとえば、次のコマンドを実行します:

SELECT TIME_FORMAT('13:45:10','%h %i %s %p');

次の出力が得られます:

01 45 10 PM

TIME_TO_SEC

秒に変換された時間値を返すには、 TIME_TO_SECを使用します

基本構文:

TIME_TO_SEC(timevalue);

たとえば、実行する場合:

SELECT TIME_TO_SEC('13:48:05');

結果は次のとおりです。

49685

TIMEDIFF

TIMEDIFFを使用して、2つの時刻/日時式の差を計算します 働き。この場合、結果は常に時間値になります。

基本構文:

TIMEDIFF(datetime1,datetime2);

たとえば、実行する場合:

SELECT TIMEDIFF('2021-01-15 11:10:17','2021-01-05 11:10:16');

出力は次を返します:

240:00:01

TO_SECONDS

日付/日時式を秒に変換するには、関数 TO_SECONDSを使用します 。結果は、0から指定された日時までの秒数です。

基本構文:

TO_SECONDS(datetime);

たとえば、次のコマンドを実行した場合:

SELECT TO_SECONDS('2021-01-21 08:10:17');

結果は次のとおりです。

63778435817

UTC_TIME

UTC_TIMEを使用して現在のUTC時刻の値を返します 。時間の値を「HH:MM:SS」または「HHMMSS」の形式で返します。

基本構文:

UTC_TIME();

たとえば、次の場合:

SELECT UTC_TIME();

この時点で得られる結果は次のとおりです。

19:45:21

タイムスタンプ関連の関数

CURRENT_TIMESTAMPまたはLOCALTIMESTAMP

現在の日付と時刻を返すには、 CURRENT_TIMESTAMPを使用します またはLOCALTIMESTAMP 。結果は「YYYY-MM-DDHH-MM-SS」または「YYYYMMDDHHMMSS.uuuuuu」形式で返されます。

基本構文:

CURRENT_TIMESTAMP();

たとえば、次のコマンドを実行します:

SELECT CURRENT_TIMESTAMP();

現在の結果は次のとおりです。

2021-01-25 19:53:55

FROM_UNIXTIME

FROM_UNIXTIMEを使用してUnix形式のタイムスタンプから日付/日時式を返します。

基本構文:

FROM_UNIXTIME(unix_timestamp);

形式を指定する引数なしでコマンドを実行すると、結果は「YYYY-MM-DDhh:mm:ss」または「YYYYMMDDhhmmss」形式で返されます。

たとえば、次の場合:

SELECT FROM_UNIXTIME(1611231404);

結果が得られます:

2021-01-21 12:16:44

タイムスタンプ

日付または日時の値から日時式を返すには、関数 TIMESTAMPを使用します。 。 2つの引数を追加すると、出力は引数の合計を返します。

基本構文:

TIMESTAMP(datetime);
TIMESTAMP(datetime,time);

たとえば、次のコマンドを実行すると:

SELECT TIMESTAMP('2021-01-13','30:50:00');

出力には結果が表示されます:

2021-01-14 06:50:00

TIMESTAMPADD

TIMESTAMPADDを使用して、日付/日時式に時刻の値を追加します 機能。

基本構文:

TIMESTAMPADD(unit,value,datetime);

ユニット 可能性があります:

  • FRAC_SECOND
  • 2番目
  • 時間
  • 四半期

たとえば、次のコマンドは、指定された日付に3日を追加します。

SELECT TIMESTAMPADD(DAY,3,'2021-01-18');

したがって、出力には次のように表示されます。

2021-01-21

TIMESTAMPDIFF

2つの日付/日時式の差を計算するには、 TIMESTAMPDIFFを使用します 。この関数は、指定された単位で1つの日時値を他の値から減算します。

基本構文:

TIMESTAMPDIFF(unit,datetime1,datetime2);

さまざまなタイプのユニットのリストを見つけることができます。上のセクションのリストを確認してください。

たとえば、次の2つの日付の差を日数で計算できます。

SELECT TIMESTAMPDIFF(DAY,3,'2021-01-18');

結果は次のとおりです:

13

UNIX_TIMESTAMP

UNIX_TIMESTAMPを使用して日付/日時式からUnixタイムスタンプを返します 働き。 Unixタイムスタンプは、指定された日時から「1970-01-0100:00:00」UTCまでの秒数を表します。

基本構文:

UNIX_TIMESTAMP(datetime);

たとえば、次のコマンドを実行します。

SELECT UNIX_TIMESTAMP('2021-01-25 17:33:00');

結果が得られます:

1611595980

UTC_TIMESTAMP

UTC_TIMESTAMPを使用して現在のUTC日付と時刻の値を返します 。日時の値を「YYYY-MM-DDHH:MM:SS」または「YYYYMMDDHHMMSS.uuuuuu」の形式で返します。

基本構文:

UTC_TIMESTAMP(datetime);

たとえば、次のコマンド:

SELECT UTC_TIMESTAMP();

以下と同じ形式で出力を返します:

2021-01-25 23:18:06

日/週/月/年関連の関数

DAYを使用して、指定された日時式から月の日を返します 機能。

基本構文:

DAY(datetime);

以下のコマンドを実行した場合:

SELECT DAY('2021-01-26 12:32:00');

出力は結果を返します:

26

DAYNAME

DAYNAMEを使用して、指定した日時式から曜日の名前を返します 機能。

基本構文:

DAYNAME(datetime);

たとえば、次のコマンドを実行すると:

SELECT DAYNAME('2021-01-26 12:32:00');

MySQLは結果で応答します:

Tuesday

DAYOFMONTH

DAYOFMONTHを使用して指定された日時式から月の日を返します

基本構文:

DAYOFMONTH(datetime);

たとえば、次のコマンドを実行すると:

SELECT DAYOFMONTH('2021-01-26 12:32:00');

MySQLは結果で応答します:

26

DAYOFWEEK

DAYOFWEEKを使用して、指定された日時式から曜日を数値で返します

基本構文:

DAYOFWEEK(datetime);

以下のコマンドを実行します:

SELECT DAYOFWEEK('2021-01-26 12:32:00');

応答します:

3

DAYOFYEAR

関数DAYOFYEARを使用して、指定された日時式から1年の日を返します。

基本構文:

DAYOFYEAR(datetime);

たとえば、次のコマンドを実行すると:

SELECT DAYOFYEAR('2021-02-26 12:32:00');

出力は次の結果になります:

57

FROM_DAYS

関数FROM_DAYSを使用して、日の数値表現から日付式を返します

基本構文:

FROM_DAYS(number);

例:実行中:

SELECT FROM_DAYS(738181);

MySQLプロンプトは次の結果で応答します:

2021-01-26

LAST_DAY

LAST_DAYを使用して、指定した日時から月末日を返します 機能。

基本構文:

LAST_DAY(date);

たとえば、次のコマンドを実行した場合:

SELECT LAST_DAY('2021-01-26');

出力は次のように応答します:

31

MONTHを使用して、指定した日時から月(数値)を返します 機能。

基本構文:

MONTH(date);

たとえば、実行する場合:

SELECT MONTH('2021-01-26');

MySQLは次のように応答します:

1

月の名前

MONTHNAMEを使用して、指定した日時から月の名前を返します 機能。

基本構文:

MONTHNAME(date);

コマンドを実行した場合:

SELECT MONTH('2021-01-26');

次の応答があります:

January

PERIOD_ADD

指定した月数を期間に追加するには、 PERIOD_ADDを使用します 機能。

基本構文:

PERIOD_ADD(period,number);

期間 はYYMMまたはYYYYMMの形式で定義され、数値 追加する月数です。

例:

SELECT PERIOD_ADD(202101, 5);

結果が得られます:

202106

PERIOD_DIFF

PERIOD_DIFFを使用して2つの期間の間の月数を返します

基本構文:

PERIOD_DIFF(period1,period2);

期間 YYMMまたはYYYYMMの形式である必要があります。

例:

SELECT PERIOD_DIFF(202101, 202003);

結果を生成します:

10

四半期

指定された日時から四半期を返すには、関数 QUARTERを使用します。

基本構文:

QUARTER(date);

たとえば、次のコマンドを実行します。

SELECT QUARTER('2021-01-26');

出力は次のように応答します:

1

TO_DAYS

日付/日時式をTO_DAYSを使用して日の数値表現に変換します

基本構文:

TO_DAYS(datetime);

たとえば、次のコマンドの場合:

SELECT TO_DAYS('2021-01-26');

結果は:

738181

指定した日付から週番号を返すには、関数 WEEKを使用します

基本構文:

WEEK(date);

モードを含めることもできます 引数。この場合、構文は WEEK(date,mode);です。

mode引数は、週の開始日を指定します。引数がない場合は、 0を使用します デフォルトではモードです。

次の表で、各モードについて説明します。

たとえば、次の場合:

SELECT WEEK('2021-01-26');

出力は次のように応答します:

4

WEEKDAY

WEEKDAYを使用して、指定した日付からの曜日を数値で返します 。各数字は平日の1つを表します–月曜日0 火曜日 1です 、など。

基本構文:

WEEKDAY(date);

たとえば、次のコマンドを実行します。

SELECT WEEKDAY('2021-01-26');

応答します:

1

WEEKOFYEAR

1年の週数を返すには、 WEEKDAYを使用します 機能。

基本構文:

WEEKOFYEAR(date);

たとえば、次のコマンドを実行すると:

SELECT WEEKOFYEAR('2021-01-26');

出力には結果が表示されます:

3

YEARを使用して指定された日付から年を返します 機能。

基本構文:

YEAR(date);

次のコマンドを実行した場合:

SELECT YEAR('2021-01-26');

結果が得られます:

2021

YEARWEEK

YEARWEEKを使用して、指定された日付から年と週の番号を返します 機能。

基本構文:

YEARWEEK(date);

modeを追加できます 週が始まる日を指定するための基本構文への引数。モードとその意味のリストを確認するには、 WEEKの表を確認してください。 機能。

たとえば、次のコマンドを実行すると:

SELECT YEARWEEK('2021-01-26');

出力は次のように表示されます:

202104

Cent OS
  1. 例を含むNohupコマンド

  2. LinuxでのJQコマンドと例

  3. FTP および SFTP ビギナーズ ガイド (10 の例を含む)

  1. コマンドを使用したRedisデータ型:包括的なガイド

  2. 例を含むwcLinuxコマンド

  3. 例を使用してMySQLでインデックスを作成または追加する方法

  1. Linuxipコマンドと例

  2. 例を含むNetcat(nc)コマンド

  3. Dockerガイド:MySQLを使用したGhostブログとDockerを使用したTraefikのデプロイ