MySQLの日付と時刻関数の使用の概要

MySQLの日付と時刻関数の使用の概要

この記事はMySQL 8.0に基づいています

この記事では、日付と時刻の操作のための MySQL 関数を紹介します。

日付と時刻関数

関数説明する
追加日付()日付値に時間値を追加する
ADDTIME()時間を追加
CONVERT_TZ()あるタイムゾーンから別のタイムゾーンに変換する
CURDATE()現在の日付を返します
CURRENT_DATE()、CURRENT_DATE CURDATE() と同義
CURRENT_TIME()、CURRENT_TIME CURDATE() と同義
CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP NOW()と同義
現在の時間()現在の時刻を返します
日付()日付または日付時刻式の日付部分を取得します
日付追加()日付値に時間値(間隔)を追加する
日付フォーマット()指定された形式で日付をフォーマットします
日付サブ()日付から時間値(間隔)を減算する
日付差分() 2つの日付を減算する
日() DAYOFMONTH() と同義
曜日名()曜日名を返します
月曜()月の日付を返します(0~31)
曜日()パラメータでソートされた曜日を返します
DAYOFYEAR()年の何日目かを返します(1~366)
抽出する()デートの一部を取得する
FROM_DAYS()日数を日付に変換する
FROM_UNIXTIME() Unix タイムスタンプを日付としてフォーマットする
GET_FORMAT()日付フォーマット文字列を返します
時間()時間を取得
最終日引数の月の最終日を返します
ローカル時間()、ローカル時間NOW()と同義
ローカルタイムスタンプ、ローカルタイムスタンプ() NOW()と同義
作成日()年と日から日付を作成する
メイクタイム()時間、分、秒から時間を作成する
マイクロ秒()引数からマイクロ秒を返します
分()戻りパラメータ分
月()過去の日付から月を返します
月名()月の名前を返します
今()現在の日付と時刻を返します
PERIOD_ADD()年月間にピリオドを追加する
期間_DIFF()期間間の月数を返します
四半期()日付引数から四半期を返します
SEC_TO_TIME()秒を「hh:mm:ss」形式に変換します
2番目()秒数を返します(0~59)
STR_TO_DATE()文字列を日付に変換する
サブ日付() 3 つの引数を指定して呼び出された場合は、DATE_SUB() と同義です。
サブタイム()時間を減算する
SYSDATE()関数が実行された時刻を返します
時間()渡された式に従って時間を取得します
TIME_FORMAT()フォーマットは時間です
TIME_TO_SEC()引数を秒数に変換して返します
タイムディフ()時間減算
タイムスタンプ()引数が 1 つの場合、この関数は日付または日付時刻式を返します。引数が 2 つの場合、引数の合計を返します。
タイムスタンプ追加()日付時刻式に間隔を追加する
タイムスタンプDIFF()日付時刻式から間隔を減算する
TO_DAYS()日付パラメータを日に変換して返します
TO_SECONDS()日付または日付時刻引数を0年からの秒数に変換して返します。
UNIX_TIMESTAMP() Unixタイムスタンプを返します
UTC_DATE()現在のUTC日付を返します
UTC_TIME()現在のUTC時間を返します
UTC_TIMESTAMP()現在のUTCの日付と時刻を返します
週()曜日を返します
平日()営業日数を返します
週次()日付の暦週を返します (1-53)
年()復帰年
週()年と曜日を返します

よく使用される MySQL の日付と時刻関数の例を見てみましょう。

現在の日付と時刻を取得する

CURDATE()

関数が文字列コンテキストで使用されているか、数値コンテキストで使用されているかに応じて、現在の日付を「YYYY-MM-DD」または YYYYMMDD 形式で返します。

mysql> CURDATE() を選択する;
 -> '2008-06-13'
mysql> CURDATE() + 0 を選択します。
 -> 20080613

CURTIME([fsp])

関数が文字列コンテキストで使用されているか数値コンテキストで使用されているかに応じて、現在の時刻を 'hh:mm:ss' または hhmmss 形式で返します。値はセッションのタイムゾーンで表現されます。

指定された fsp 精度が小数点以下 0 から 6 桁の場合、小数点精度は 0 から 6 になります。

mysql> CURTIME() を選択する;
 -> '23:50:26'
mysql> CURTIME() + 0 を選択します。
 -> 235026.000000

今([fsp])

関数が文字列コンテキストで使用されているか数値コンテキストで使用されているかに応じて、現在の日付と時刻を 'YYYY-MM-DD hh:MM:ss' または YYYYMMDDhhmmss 形式で返します。値はセッションのタイムゾーンで表現されます。

mysql> NOW() を選択してください。
 -> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
 -> 20071215235026.000000

時間と日付の形式の変換

同じ日付と時刻をさまざまな方法で表現できるため、異なる形式間で変換する必要がある場合もあります。 MySQL では、date_format() 関数が使用されます。

  • DATE_FORMAT(日付、形式): 書式文字列に従って日付値を書式設定します。

関連する形式は次のとおりです。この関数で使用されるほか、この形式は STR_TO_DATE()、TIME_FORMAT()、UNIX_TIMESTAMP() でも使用できます。

形式説明する
%a曜日の略称(日曜~土曜)
%b月名の省略形(1月~12月)
%c月、数値 (0..12)
%D英語の接頭辞付きの月日 (0 日、1 日、2 日、3 日、…)
%d月の1日の値(00..31)
%e 1 か月の 1 日の値 (0..31)
%fマイクロ秒 (000000..999999)
%H時間 (00..23)
%h時間 (01..12)
%私時間 (01..12)
%私分、値 (00..59)
%j年の通算日 (001..366)
%k時間 (0..23)
%l時間 (1..12)
%M月名(1月~12月)
%m月、値 (00..12)
%p午前または午後
%r時刻、12 時間制 (hh:mm:ss AM または PM)
%S秒 (00..59)
%s秒 (00..59)
%T時間、24 時間 (hh:mm:ss)
%W曜日(日曜日..土曜日)
%w曜日 (0=日曜日..6=土曜日)
%Y年、数字、4桁
%y年、数字、2桁

mysql> DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y') を選択します。
 -> 「2009年10月日曜日」
mysql> DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s')を選択します。
 -> '22:23:00'
mysql> DATE_FORMAT('1900-10-04 22:23:00', を選択
 -> '%D %y %a %d %m %b %j');
 -> '277年10月10日 木曜 04 00'
mysql> DATE_FORMAT('1997-10-04 22:23:00', を選択
 -> '%H %k %I %r %T %S %w');
 -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> DATE_FORMAT('1999-01-01', '%X %V') を選択します。
 -> '1998 52'
mysql> DATE_FORMAT('2006-06-00', '%d') を選択します。
 -> '00'

日付と時刻の操作

  • DATE_ADD(日付,INTERVAL 式 単位),
  • DATE_SUB(日付,INTERVAL 式 単位)

これらの関数は日付演算を実行して日付を前方または後方にシフトします。日付パラメータは、開始日または日時値を指定します。 expr は、開始日から加算または減算する間隔値を指定する式です。 expr は文字列として評価されます。負の区間を示すために - で始まる場合があります。 unit は、式で使用する単位を示すキーワードです。

mysql> DATE_ADD('2018-05-01',INTERVAL 1 DAY) を選択します。
 -> '2018-05-02'
mysql> DATE_SUB('2018-05-01',INTERVAL 1 YEAR) を選択します。
 -> '2017-05-01'
mysql> SELECT DATE_ADD('2020-12-31 23:59:59',
 -> 間隔 1 秒);
 -> '2021-01-01 00:00:00'
mysql> SELECT DATE_ADD('2018-12-31 23:59:59',
 -> 間隔 1 日);
 -> '2019-01-01 23:59:59'
mysql> SELECT DATE_ADD('2100-12-31 23:59:59',
 -> 間隔 '1:1' 分秒);
 -> '2101-01-01 00:01:00'
mysql> SELECT DATE_SUB('2025-01-01 00:00:00',
 -> 間隔 '1 1:1:1' DAY_SECOND);
 -> '2024-12-30 22:58:59'
mysql> SELECT DATE_ADD('1900-01-01 00:00:00',
 -> 間隔 '-1 10' DAY_HOUR);
 -> '1899-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
 -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
 -> 間隔 '1.999999' SECOND_MICROSECOND);
 -> '1993-01-01 00:00:01.000001'
  • DATEDIFF(式1,式2)

DATEDIFF() は、ある日付から別の日付までの日数として表される expr1−expr2 を返します。 expr1 と expr2 は日付または日付と時刻の式です。計算には値の日付部分のみが使用されます。

mysql> DATEDIFF('2007-12-31 23:59:59','2007-12-30')を選択します。
 -> 1
mysql> DATEDIFF('2010-11-30 23:59:59','2010-12-31')を選択します。
 -> -31

参照:

【1】:12.7 日付と時刻関数

[2]: 現在の日付と時刻を取得するMySQL関数

【3】:MySQLの日付と時刻関数のガイド

これで、MySQL の日付と時刻関数に関するこの記事は終了です。MySQL の日付と時刻関数の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Mysqlの日付と時刻関数を扱う記事
  • MySQL の日付と時刻関数の概要 (MySQL 5.X)
  • PHP Mysql 日付と時刻関数コレクション
  • mYsqlの日付と時刻の関数はヘルプを必要としません
  • MySQL の日付と時刻関数の知識の要約

<<:  イメージの起動時にdocker runまたはdocker restartが自動的に終了する問題を解決します

>>:  HTMLフォームタグチュートリアル(1):

推薦する

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

正規表現に基づくあいまい文字列置換を実装するMySQLの方法の分析

この記事では、例を使用して、MySQL を使用して正規表現に基づくあいまい文字列置換を実装する方法を...

Linux がますます人気になっている 10 の理由

Linux はますます多くのユーザーに愛されてきました。なぜ Linux はこれほど急速に発展し、い...

Webpack コンポーネントの使用状況統計を実装するための 50 行のコード

背景最近、リーダーからコンポーネント ライブラリを構築するように依頼があり、プロジェクトで現在使用さ...

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rule...

JavaScript タイマー原理の詳細な説明

目次1. setTimeout() タイマー2. setTimeout() タイマーを停止する3. ...

HTML ヘッドタグの詳細な紹介

HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...

HTML ベース URL タグ

その機能はグローバル スタイルを設定することです。その後の相対パスはこれに基づきます: <im...

MySQL マスタースレーブレプリケーションの原理と実践の詳細な説明

目次導入効果原理形状練習するこの記事では、例を使用して、MySQL マスター/スレーブ レプリケーシ...

Vite2.0の落とし穴

目次Viteプロジェクトビルドの最適化他のやっとこれは前回の記事の補足です。設定プロジェクトで遭遇し...

私が遭遇したIE8の互換性に関する注意事項

1. IE8 の getElementById は id のみをサポートし、name はサポートしま...

Linux netstatコマンドの詳細な説明

目次Linux netstat コマンド1. TCP接続ステータスの詳細な説明2. コマンド形式3....

VMware での Ubuntu と Windows 間のファイル共有

この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...

デザインストーリー: ナンバープレートを覚えられない警備員

<br />私が住んでいる地域では、コミュニティに出入りする車両を管理するために、コミュ...

一時ファイルを作成できないために MySQL が起動できない問題を解決する方法

問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...