mysqlの日付変換

WBOY
リリース: 2023-05-12 10:38:07
オリジナル
15982 人が閲覧しました

MySQL データベースを使用すると、データの統計、分析、表示によく使用される日付の処理と変換が実行されます。したがって、開発者とデータベース管理者が MySQL の日付変換方法に習熟することは非常に重要です。

MySQL は、日付と時刻をさまざまな形式や文字列に簡単に変換できる豊富な日付関数と構文を提供します。この記事では、MySQL の日付変換の構文と例に焦点を当て、いくつかの一般的なアプリケーション シナリオとテクニックを提供します。

日付形式

MySQL では、日付と時刻はデフォルトの形式で保存されます。デフォルトの日付形式は YYYY-MM-DD で、時刻形式は HH:MM:SS です。 DATE_FORMAT() 関数を使用すると、日付と時刻をさまざまな形式の文字列に変換できます。

次の表に、MySQL の日付形式オプションを示します。

#%Y4 桁の年 #%y%m%c%d#%e日付、先頭にゼロなし %H 時間 (00 ~ 23) %h 時間 (01 ~ 12)%i2 桁の分%stwo 秒数 (桁数)%p「午前」または「午後」%W週の完全な名前%a週の略称%MM 月の氏名月の略称##%j年間日数 (0 -366)%U1 年の週数 (日曜日から)
Format (形式) Description
2 桁の年
2 桁の月
2 桁の月、先頭にゼロを付ける
2 桁の日
#%b
#%u 週数その年 (月曜日から)
%XX その年の完全な番号。日曜日の場合は新しい日になります。 年の最初の日、新しい年は前年の最後の土曜日に始まります
%V 今週の場合は、年の週数 (月曜日から数えます)が来年の一部である場合、今週は新年の最初の週としてカウントされます。

日付関数

MySQL には、フォーマット変換、クエリ、日付と時刻の計算に使用できる多くの日付関数が用意されています。以下に、いくつかの一般的な日付関数とその説明を示します。

  1. NOW()

NOW() 関数は、現在の日付と時刻を返します。データ テーブルのフィールドにタイムスタンプを追加するために使用できます。

構文:

SELECT NOW();
ログイン後にコピー

結果:

2022-01-01 16:12:07
ログイン後にコピー
  1. DATE_FORMAT()

DATE_FORMAT() 関数は、日付と時刻を次のように変換できます。指定された形式。

構文:

SELECT DATE_FORMAT(date,format);
ログイン後にコピー

例:

SELECT DATE_FORMAT('2022-01-01 16:25:30','%m/%d/%Y %h:%i:%s %p');
ログイン後にコピー

結果:

01/01/2022 04:25:30 PM
ログイン後にコピー
  1. DATE()

DATE( ) 関数は、日付値の日付部分を返します。

構文:

SELECT DATE(date);
ログイン後にコピー

例:

SELECT DATE('2022-01-01 16:30:00');
ログイン後にコピー

結果:

2022-01-01
ログイン後にコピー
ログイン後にコピー
  1. DAY()

DAY( ) 関数は、指定された日付の日付部分の日数を返します。

構文:

SELECT DAY(date);
ログイン後にコピー

例:

SELECT DAY('2022-01-01 16:30:00');
ログイン後にコピー

結果:

01
ログイン後にコピー
ログイン後にコピー
  1. MONTH()

MONTH( ) 関数は、指定された日付の月を返します。

構文:

SELECT MONTH(date);
ログイン後にコピー

例:

SELECT MONTH('2022-01-01 16:30:00');
ログイン後にコピー

結果:

01
ログイン後にコピー
ログイン後にコピー
  1. YEAR()

YEAR( ) 関数は、指定された日付の年を返します。

構文:

SELECT YEAR(date);
ログイン後にコピー

例:

SELECT YEAR('2022-01-01 16:30:00');
ログイン後にコピー

結果:

2022
ログイン後にコピー
  1. DATE_ADD()

DATE_ADD( ) 関数は、日付と時刻の値を追加するために使用されます。

構文:

SELECT DATE_ADD(date, INTERVAL value unit);
ログイン後にコピー

例:

SELECT DATE_ADD('2022-01-01', INTERVAL 1 MONTH);
ログイン後にコピー

結果:

2022-02-01
ログイン後にコピー
  1. DATE_DIFF()

DATEDIFF( ) 関数は、2 つの日付の間の日数を計算します。

構文:

SELECT DATEDIFF(date1,date2);
ログイン後にコピー

例:

SELECT DATEDIFF('2022-01-01','2021-12-31');
ログイン後にコピー

結果:

1
ログイン後にコピー
  1. STR_TO_DATE()

STR_TO_DATE( ) 関数は文字列を日付形式に変換します。

構文:

SELECT STR_TO_DATE(str, format);
ログイン後にコピー

例:

SELECT STR_TO_DATE('20220101','%Y%m%d');
ログイン後にコピー

結果:

2022-01-01
ログイン後にコピー
ログイン後にコピー
  1. TIME()

TIME( ) 関数は、日付/時刻値の時刻部分を返します。

構文:

SELECT TIME(datetime);
ログイン後にコピー

例:

SELECT TIME('2022-01-01 16:45:30');
ログイン後にコピー

結果:

16:45:30
ログイン後にコピー

日付変換スキル

MySQL の日付の構文と関数をマスターする変換は非常に重要ですが、実際のプロジェクトでは柔軟に使用する必要があります。一般的な日付変換テクニックをいくつか紹介します。

  1. 2 つの日付の差を計算する

MySQL では、DATE_DIFF()、DATEDIFF()、TO_DAYS() などの関数を使用して 2 つの日付の差を計算できます。間の違いを日付します。たとえば、2 つの日付間の日数を計算します:

SELECT DATEDIFF('2022-01-02','2021-12-31') AS days;
ログイン後にコピー

結果:

2
ログイン後にコピー
  1. タイムスタンプを日付形式に変換します

データベース内の場合フィールドタイムスタンプとして保存され、FROM_UNIXTIME() 関数を使用して日付形式に変換できます。

SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d %H:%i:%s') AS date FROM tableName;
ログイン後にコピー
  1. 日付形式をタイムスタンプに変換する

MySQL の日付形式を UNIX タイムスタンプに変換する必要がある場合は、クエリ ステートメントで UNIX_TIMESTAMP() 関数を使用できます。 。

SELECT UNIX_TIMESTAMP('2022-01-01 17:00:00') AS timestamp;
ログイン後にコピー

結果:

1641054000
ログイン後にコピー
  1. 現在の月と年を表示

DATE_FORMAT() 関数を使用すると、現在の月と年を簡単に表示できます。

SELECT DATE_FORMAT(NOW(),'%Y年%m月') AS month;
ログイン後にコピー

結果:

2022年01月
ログイン後にコピー

概要

MySQL の日付変換は、開発者とデータベース管理者にとって非常に重要です。この記事では、一般的な日付関数と構文、およびいくつかの一般的なアプリケーション シナリオとテクニックを紹介します。実際のプロジェクトでは、最適な日付形式と効果を実現するために、特定の状況に応じて柔軟に使用する必要があります。

以上がmysqlの日付変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート