序文日付と時刻の機能も、日常業務で頻繁に使用されます。この記事では、主に MySQL の日付と時刻に関連する関数について説明します。これらは基本的に異なるデータベース間で同じであり、個々の関数のみが異なります。誰もがデータベースを持っているので、分からないことがあれば調べるだけで済みます。 1. 現在の時刻を取得する 1.1 現在の日付と時刻を返す 1.2 現在の日付を取得する 1.3 現在の時刻を取得する 1.4 現在の週番号を取得する 2. 日付と時刻の形式の変換 3. 日付と時刻の操作 3.1 後進シフト時間 3.2 前進シフト時間 3.3 2つの日付の差 記事はかなり長いので保存してゆっくり読むことをおすすめします。 1. 現在の時刻を取得する現在の時刻を取得するということは、プログラムが実行されている時点の年、月、日、時、分、秒などの時間関連のデータを取得することを意味します。 1.1 現在の日付と時刻を返す現在の日付と時刻を返すには、ESql で now() 関数を使用します。select の後に now() 関数を記述するだけです。具体的なコードは次のとおりです。 今すぐ選択() 上記のコードを実行すると、プログラムが実行されている時点の年、月、日、時、分、秒の情報が取得されます。例: 2019-12-25 22:47:37。 1.2 現在の日付を取得する前述の now() 関数は、現在の日付と時刻を取得します。現在の日付部分のみが必要で、時刻部分は必要ない場合もあります。この場合は、Sql で now() 関数を curdate() 関数に置き換えて、現在の日付部分を取得します。具体的なコードは次のとおりです。 curdate() を選択 上記のコードを実行すると、現在の日付部分を取得します: 2019-12-25 curdate() 関数は、現在の瞬間の日付部分を直接取得します。また、最初に now() 関数を使用して現在の日付と時刻を取得し、次に date() 関数を使用して日付と時刻を日付部分に変換することもできます。具体的なコードは次のとおりです。 日付を選択(now()) 上記のコードを実行すると、curdate() 関数と同じ結果が得られます。 year() 関数を使用して日付の年だけを取得することもできます。具体的なコードは次のとおりです。 年を選択(now()) 上記のコードを実行すると、最終結果は 2019 になります。 month() 関数を使用して、日付の月のみを取得することもできます。具体的なコードは次のとおりです。 月を選択(now()) 上記のコードを実行すると、最終結果は 12 になります。 day() 関数を使用して日付の日のみを取得することもできます。具体的なコードは次のとおりです。 日を選択(now()) 上記のコードを実行すると、最終結果は 25 になります。 1.3 現在の時刻を取得する現在の日付のみを取得する必要があるだけでなく、現在の時刻のみを取得する必要もあります。現在の時刻のみを取得したい場合は、現在の日付のみを取得する curdate() 関数を curtime() 関数に置き換えるだけです。具体的なコードは次のとおりです。 curtime() を選択 上記のコードを実行すると、現在の時刻部分(22:47:37)を取得できます。 また、最初に now() 関数を使用して現在の日付と時刻を取得し、次に time() 関数を使用して日付と時刻を時刻部分に変換することもできます。具体的なコードは次のとおりです。 時間を選択(now()) 上記のコードを実行すると、curdate() 関数と同じ結果が得られます。 hour() 関数を使用して、時刻内の時間のみを取得することもできます。具体的なコードは次のとおりです。 時間を選択(now()) 上記のコードを実行すると、最終結果は 22 になります。 minute() 関数を使用して、時間の分だけを取得することもできます。具体的なコードは次のとおりです。 分を選択(now()) 上記のコードを実行すると、最終結果は 47 になります。 second() 関数を使用して、時間の秒数のみを取得することもできます。具体的なコードは次のとおりです。 2番目を選択(now()) 上記のコードを実行すると、最終結果は 37 になります。 1.4 現在の週番号を取得する上記では、現在の日付と時刻、日付と時刻を取得する方法について説明しました。このセクションでは、現在の週番号を取得する方法について説明します。通常、1 年は 52 週間 (365 日 / 7) に分けられますが、53 週間になることもあります。1 年の現在の週を確認するには、weekofyear() 関数を使用します。具体的なコードは次のとおりです。 週番号を選択(now()) 上記のコードを実行すると、最終結果は 52 になります。 年の現在の週番号を取得することに加えて、現在の日付が何曜日であるかも取得する必要があります。 Sql で使用される dayofweek() 関数の具体的なコードは次のとおりです。 曜日を選択(now()) 上記のコードを実行すると、最終結果は 5 になります。2019 年 12 月 25 日は木曜日のはずです。なぜ結果が 5 になるのでしょうか。これは、この関数の週が日曜日から始まるためです。つまり、日曜日は 1、月曜日は 2 に対応し、木曜日は 5 に対応します。 2. 日付と時刻の形式の変換同じ日付と時刻をさまざまな方法で表現できることはご存知でしょうが、場合によっては異なる形式間で変換する必要があります。 Sql では、date_format() 関数を使用します。date_format 関数の形式は次のとおりです。 date_format(日付時刻,形式) datetime は変換する特定の日付と時刻を示し、format は変換する形式を示します。オプションの形式は次のとおりです。
date_format("2019-12-25 22:47:37","%Y-%m-%d") を選択してください 上記のコードを実行すると、4 桁の年、01 から 12 までの月、01 から 31 までの日が - で区切られて返されます (つまり、2019-12-25)。 ここで、1 と 01 の違いに注意する必要があります。基本的に、どちらも 1 を表しますが、表示は少し異なります。たとえば、次のコードでは、元の日付は 2019-1-1 ですが、返される結果は 2019-01-01 です。 date_format("2019-1-1 22:47:37","%Y-%m-%d") を選択 date_format("2019-12-25 22:47:37","%H:%i:%S") を選択 上記のコードを実行すると、00 ~ 23 の時間、00 ~ 59 の分、00 ~ 59 の秒が : で区切られて返されます (つまり、22:47:37)。 date_format() 関数に加えて、年、月、日、時間、分など、特定の日付と時刻の単一の部分を返すために使用される extract 関数もあります。具体的な形式は以下のとおりです。 抽出(日時から単位) datetime は特定の日付と時刻を表し、unit は datetime から返される個々の部分を表します。単位の値は次のとおりです。
選択 抽出(年を「2019-12-25 22:47:37」から抽出)をcol1として 、抽出(「2019-12-25 22:47:37」から月を抽出)をcol2として 、extract("2019-12-25 22:47:37") を col3 として抽出します 上記のコードを実行すると、datetime の年、月、日がそれぞれ取得されます。具体的な結果は次のとおりです。
3. 日付と時刻の操作場合によっては、日付間の計算も実行する必要があります。たとえば、今日の 7 日前の日付や今日の 13 日後の日付を取得したい場合、カレンダーやカウントを参照できますが、これらの方法は必ずしも最も直接的な方法ではありません。そのため、日付間の操作が必要になります。 3.1 後進シフト時間たとえば、今日から x 日後の日付を取得したい場合、今日の日付に x 日を追加することと同じです。これを後方オフセットと呼びます。このとき、date_add() 関数を使用できます。具体的な形式は次のとおりです。 date_add(日付、間隔 数値 単位) date は現在の日付、または現在の日時を表します。interval は固定パラメータです。num は前述の x です。unit は追加する単位を表します。7 日前、7 か月前、または 7 年前に戻るかどうかです。オプションの値は、extract 関数の unit のオプション値と同じです。 選択 「2019-01-01」をcol1として ,date_add("2019-01-01",間隔7年)をcol2として ,date_add("2019-01-01",間隔7か月)をcol3として ,date_add("2019-01-01",間隔7日)をcol4として 上記のコードを実行すると、2019-01-01 から 7 年 7 か月 7 日後の日付が返されます。具体的な結果は次のとおりです。
選択 「2019-01-01 01:01:01」をcol1として ,date_add("2019-01-01 01:01:01",間隔 7 時間) を col2 として ,date_add("2019-01-01 01:01:01",間隔7分)をcol3として ,date_add("2019-01-01 01:01:01",間隔7秒)をcol4として 上記のコードを実行すると、2019-01-01 01:01:01 から 7 時間 7 分 7 秒後の日付が返されます。具体的な結果は次のとおりです。
3.2 前進シフト時間後方偏差がある場合には、前方偏差も発生します。たとえば、今日より何日前の日数を取得したい場合、現在の日付から x 日を引くことになります。このとき、date_sub() 関数を使用します。date_sub の関数形式は date_add と同じです。上記のコードで date_add を date_sub に置き換えると、前方にシフトすることを意味します。 選択 「2019-01-01」をcol1として ,date_sub("2019-01-01",間隔7年)をcol2として ,date_sub("2019-01-01",間隔7か月)をcol3として ,date_sub("2019-01-01",間隔7日)をcol4として 上記のコードを実行すると、2019-01-01 の 7 年前、7 か月、7 日前の日付が返されます。具体的な結果は次のとおりです。
指定された時刻を進めるには、date_sub を使用するだけでなく、引き続き date_add を使用しますが、追加する特定の num 値を負の数 (7 を -7 など) に置き換えるだけです。具体的な実装コードは次のとおりです。 選択 「2019-01-01」をcol1として ,date_add("2019-01-01",間隔 -7 年) を col2 として ,date_add("2019-01-01",間隔 -7 か月) を col3 として ,date_add("2019-01-01",間隔 -7 日) を col4 として 上記を実行して得られた結果は、date_sub を使用して得られた結果と一致します。 3.3 2つの日付の差上記では、前方オフセットと後方オフセットについて説明しました。2 つの日付の差を取得する必要が生じることもあります。その場合は datediff() 関数を使用します。datediff は、2 つの日付間の日数を返すために使用されます。関数の形式は次のとおりです。 datediff(終了日、開始日) end_date を使用して start_date を減算します。 datediff("2019-01-07","2019-01-01") を選択 上記のコードを実行すると、2019-01-07 と 2019-01-01 の間の日数の差である 6 が返されます。 以下も視聴できます: Sql の実行順序は何ですか? これで、MySQL の日付と時刻関数に関するこの記事は終了です。MySQL の日付と時刻関数の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: js はマウスインとマウスアウトによるカード切り替えコンテンツを実装します
>>: Docker イメージのプルとタグ操作 pull | tag
1. 新しいユーザーを追加するローカルIPアクセスのみを許可する '123456' ...
随分前に「Patterns for Sign Up & Ramp Up」を読み終えました。今...
この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...
Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...
目次最初の方法アプリ.vueホーム.vueホームコンテンツ.vueデータの応答性レスポンシブプロパテ...
序文この記事は主に Linux C でのログ出力コード テンプレートに関する関連コンテンツを紹介し、...
まず、方法を理解します。 docker exec を使用して Docker コンテナに入るDocke...
Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...
目次1. 直接譲渡2. 浅いコピー3. ディープコピー1. JSONオブジェクトメソッド2. 再帰コ...
1 つのサーバー上で 3 つの MySQL インスタンス プロセスが開始され、それぞれ異なるポート ...
居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...
この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...
今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................
1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...
1.マスクレイヤーのHTMLコードと画像をdivに配置する.img_div に入れました。 <...