MySQLは現在の日付と時刻を取得する関数

MySQLは現在の日付と時刻を取得する関数

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now()

mysql> now() を選択します。
+---------------------+
| 今() |
+---------------------+
| 2008-08-08 22:20:46 |
+---------------------+

現在の日付 + 時刻 (日付 + 時刻) を取得する関数: sysdate()

sysdate() 日付と時刻関数は now() と似ていますが、now() は実行の開始時に値を取得するのに対し、sysdate() は関数の実行時に動的に値を取得する点が異なります。理解するには次の例を見てください。

mysql> now()、sleep(3)、now() を選択します。
+---------------------+----------+---------------------+
| 今() | スリープ(3) | 今() |
+---------------------+----------+---------------------+
| 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |
+---------------------+----------+---------------------+

sysdate() 日付と時刻の関数。一般的にはあまり使用されません。

MySQL は現在のタイムスタンプ関数を取得します: current_timestamp、current_timestamp()

mysql> current_timestamp、current_timestamp() を選択します。
+---------------------+---------------------+
| 現在のタイムスタンプ | 現在のタイムスタンプ() |
+---------------------+---------------------+
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+---------------------+---------------------+

MySQL 日付変換関数、時刻変換関数

MySQL 日付/時刻を Str (日付/時刻を文字列に変換) 関数: date_format(date,format)、time_format(time,format)

mysql> date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s') を選択します。
+----------------------------------------------------+
| date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s') |
+----------------------------------------------------+
| 20080808222301 |
+----------------------------------------------------+

MySQL の日付と時刻の変換関数: date_format(date,format)、time_format(time,format) は、日付/時刻をさまざまな文字列形式に変換できます。これは、str_to_date(str,format) 関数の逆変換です。

MySQL Str to Date (文字列から日付) 関数: str_to_date(str, format)

str_to_date('08/09/2008', '%m/%d/%Y') を選択します -- 2008-08-09
str_to_date('08/09/08' , '%m/%d/%y') を選択します -- 2008-08-09
str_to_date('08.09.2008', '%m.%d.%Y') を選択します -- 2008-08-09
str_to_date('08:09:30', '%h:%i:%s') を選択します -- 08:09:30
str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s') を選択します -- 2008-08-09 08:09:30

ご覧のとおり、str_to_date(str,format) 変換関数は、乱雑な文字列を日付形式に変換できます。あるいは、時間に変換することもできます。 「フォーマット」については、MySQL のマニュアルを参照してください。

MySQL (日付、日) 変換関数: to_days(日付)、from_days(日)

to_days('0000-00-00'); を選択します -- 0
to_days('2008-08-08'); を選択します -- 733627

MySQL (時間、秒) 変換関数: time_to_sec(時間)、sec_to_time(秒)

time_to_sec('01:00:05'); を選択します -- 3605
sec_to_time(3605); を選択します -- '01:00:05'

MySQL makedate(年、年曜日)、maketime(時、分、秒)

makedate(2001,31); を選択します -- '2001-01-31'
makedate(2001,32); を選択します --'2001-02-01'
maketime(12,15,30); を選択します -- '12:15:30'

MySQL (Unix タイムスタンプ、日付) 変換関数

unix_timestamp()、
unix_timestamp(日付)、
from_unixtime(unix_timestamp)、
from_unixtime(unix_timestamp,フォーマット)

次に例を示します。

unix_timestamp() を選択; -- 1218290027
unix_timestamp('2008-08-08'); を選択します -- 1218124800
unix_timestamp('2008-08-08 12:30:00'); を選択します -- 1218169800
from_unixtime(1218290027); を選択します --'2008-08-09 21:53:47'
from_unixtime(1218124800); を選択します --'2008-08-08 00:00:00'
from_unixtime(1218169800); を選択します --'2008-08-08 12:30:00'
from_unixtime(1218169800, '%Y %D %M %h:%i:%s %x') を選択します -- '2008 8月8日 12:30:00 2008'

MySQL の日付と時刻の計算関数

MySQL は日付に時間間隔を追加します: date_add()

@dt = now() を設定します。
select date_add(@dt, interval 1 day); -- 1日追加します
select date_add(@dt, interval 1 hour); -- 1時間追加します
date_add(@dt, 間隔 1 分) を選択します -- ...
date_add(@dt、間隔1秒)を選択します。
date_add(@dt、間隔1マイクロ秒)を選択します。
date_add(@dt、間隔1週間)を選択します。
date_add(@dt、間隔1か月)を選択します。
date_add(@dt、間隔1四半期)を選択します。
date_add(@dt、間隔1年)を選択します。
select date_add(@dt, interval -1 day); -- 1日を減算

MySQL の adddate()、addtime() 関数は date_add() に置き換えることができます。以下は、addtime() 関数を実装する date_add() の例です。

mysql> @dt = '2008-08-09 12:12:33' を設定します。
マイSQL>
mysql> date_add(@dt、間隔 '01:15:30' 時間_秒) を選択します。
+------------------------------------------------+
| date_add(@dt, 間隔 '01:15:30' 時間_秒) |
+------------------------------------------------+
| 2008-08-09 13:28:03 |
+------------------------------------------------+
mysql> date_add(@dt、間隔 '1 01:15:30' day_second) を選択します。
+-------------------------------------------------+
| date_add(@dt、間隔 '1 01:15:30' day_second) |
+-------------------------------------------------+
| 2008-08-10 13:28:03 |
+-------------------------------------------------+
 

MySQL は日付から間隔を減算します: date_sub()

mysql> date_sub('1998-01-01 00:00:00', 間隔 '1 1:1:1' day_second) を選択します。
+----------------------------------------------------------------+
| date_sub('1998-01-01 00:00:00', 間隔 '1 1:1:1' day_second) |
+----------------------------------------------------------------+
| 1997-12-30 22:58:59 |
+----------------------------------------------------------------+

MySQL の date_sub() 日付と時刻関数は date_add() と同じ使い方をするため、ここでは詳細には説明しません。

MySQL の日付と時刻の減算関数: datediff(date1,date2), timediff(time1,time2)

MySQL datediff(date1,date2): 2 つの日付から date1 - date2 を減算し、日数を返します。

datediff('2008-08-08', '2008-08-01'); を選択します -- 7
datediff('2008-08-01', '2008-08-08'); を選択します -- -7
MySQL timediff(time1, time2): 2 つの日付から time1 - time2 を減算し、時間差を返します。
timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); を選択します -- 08:08:08
timediff('08:08:08', '00:00:00'); を選択します -- 08:08:08

注意: timediff(time1, time2) 関数の 2 つのパラメータは同じ型である必要があります。

MySQL タイムスタンプの変換、増加、減少関数:

timestamp(date) -- 日付をタイムスタンプにする
timestamp(dt,time) -- dt + 時間
timestampadd(単位、間隔、日時式) --
timestampdiff(単位,datetime_expr1,datetime_expr2) --

例のセクションを参照してください:

タイムスタンプを選択します('2008-08-08'); -- 2008-08-08 00:00:00
タイムスタンプを選択('2008-08-08 08:00:00', '01:01:01'); -- 2008-08-08 09:01:01
タイムスタンプを選択('2008-08-08 08:00:00', '10 01:01:01'); -- 2008-08-18 09:01:01
timestampadd(day, 1, '2008-08-08 08:00:00') を選択します -- 2008-08-09 08:00:00
date_add('2008-08-08 08:00:00'、間隔 1 日) を選択します -- 2008-08-09 08:00:00
MySQL timestampadd() 関数は date_add() に似ています。
timestampdiff(year,'2002-05-01','2001-01-01'); を選択します -- -1
timestampdiff(day,'2002-05-01','2001-01-01') を選択します -- -485
timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); を選択します -- -12
datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00'); を選択します -- 7

MySQL timestampdiff() 関数は、2 つの日付間の日数しか計算できない datediff() よりもはるかに強力です。

MySQL タイムゾーン変換関数

convert_tz(dt,from_tz,to_tz)

convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); を選択します -- 2008-08-08 04:00:00

タイムゾーンの変換は、date_add、date_sub、timestampadd を通じても実行できます。

date_add('2008-08-08 12:00:00'、間隔 -8 時間) を選択します -- 2008-08-08 04:00:00
date_sub('2008-08-08 12:00:00', 間隔 8 時間) を選択します -- 2008-08-08 04:00:00
timestampadd(hour, -8, '2008-08-08 12:00:00') を選択します -- 2008-08-08 04:00:00

上記は、私が紹介した現在の日付と時刻を取得するための MySQL 関数です。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信します。

以下もご興味があるかもしれません:
  • MySQL の一般的な日付比較および計算関数
  • MySQL の日付関数と日付変換およびフォーマット関数
  • MySQL でよく使用される日付と時刻/数値関数の詳細な説明 (必読)
  • MySQL の日付型の単一行関数コードの詳細な説明

<<:  DockerでNginxサーバーを作成する方法

>>:  ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します

推薦する

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

面接の質問: 3 行 3 列のレイアウト、表は結合され、ネストされた表は許可されません

面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...

CSS の flex と inline-flex の違いの詳細な説明

inline-flex は inline-block と同じです。内部要素用の display:fl...

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...

nginx を使用してカナリアリリースをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してカナリア リリースを最も簡単な...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

Dockerの基本的な手順

目次基本的な指示1. 現在のマシンのコンテナステータスを確認する2. イメージをダウンロードまたは取...

ウェブサイトのホームページを作成するための基本原則

1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...

モバイルデバイスでのフリーズ問題に対する CSS3 ソリューション (アニメーション パフォーマンスの最適化)

1. CSS、jQuery、Canvasを使用してアニメーションを作成する1. キャンバス利点: ...

Nginx が Apache より優れている理由

Nginx は、わずか数年で Web サーバー市場の大部分を占めるようになりました。周知のとおり、N...

Windows 10 で MySQL を完全に削除してアンインストールする方法

序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...

MySQL の基本ステートメントを最適化するための 10 の原則の概要

序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

Dockerイメージのローカル移行の実装

最近 Docker を勉強しているのですが、よく問題に遭遇します。Docker イメージをダウンロー...

CentOS/RHEL システムで VLAN タグ付きイーサネット カードを使用する方法

シナリオによっては、Linux サーバー (CentOS/RHEL) の同じイーサネット カード (...