[できるPRO MySQL できるPROシリーズ Kindle版] まとめ

Logo

できるPRO MySQL できるPROシリーズ Kindle版の内容をまとめる。

View the Project on GitHub nekonisi/MySQL

15_日時を処理

概要

日付時刻関数

概要

日付時刻関数の使用例

関数名 説明
CURDATE(), CURRENT_DATE(), CURRENT_DATE 現在の日付を返す。
CURTIME(), CURRENT_TIME(), CURRENT_TIME 現在の時刻を返す。
NOW(), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP 現在の日付と時刻を返す。
DATE_FORMAT() 日付を指定内容に基づいてフォーマットする。*1
DAYNAME() 曜日の名前を返す。
DATEDIFF(日付1, 日付2) 日付1と日付2の差を返す。
DATE_ADD(日付, INTERVAL 期間) 日付に期間を加える。*2
記号 意味
%a 週(Sun…Sat)
%b 月(Jan…Dec)
%c 月(1…12)
%d 日(01…31)
%H 時(01…31)
%h 時(01…31)
%m 月(01…12)
%Y 年(4桁の数字)
%y 年(2桁の数字)
期間 意味
YEAR
MONTH
DAY
HOUR 時間
MINUTE
SECOND

サンプル

日時データを確認

SELECT rental_date, return_date FROM rental 
LIMIT 3;
MariaDB [sakila]> SELECT rental_date, return_date FROM rental LIMIT 3;
+---------------------+---------------------+
| rental_date         | return_date         |
+---------------------+---------------------+
| 2005-05-24 22:53:30 | 2005-05-26 22:04:30 |
| 2005-05-24 22:54:33 | 2005-05-28 19:40:33 |
| 2005-05-24 23:03:39 | 2005-06-01 22:12:39 |
+---------------------+---------------------+
3 rows in set (0.00 sec)

10日後の日時を表示

SELECT DATE_ADD(rental_date, INTERVAL '10' DAY) 
FROM rental 
LIMIT 3;
MariaDB [sakila]> SELECT DATE_ADD(rental_date, INTERVAL '10' DAY) FROM rental LIMIT 3;
+------------------------------------------+
| DATE_ADD(rental_date, INTERVAL '10' DAY) |
+------------------------------------------+
| 2005-06-03 22:53:30                      |
| 2005-06-03 22:54:33                      |
| 2005-06-03 23:03:39                      |
+------------------------------------------+
3 rows in set (0.01 sec)

日付を差分を表示

SELECT DATEDIFF(return_date, rental_date) 
FROM rental 
LIMIT 3;
MariaDB [sakila]> SELECT DATEDIFF(return_date, rental_date) FROM rental LIMIT 3;
+------------------------------------+
| DATEDIFF(return_date, rental_date) |
+------------------------------------+
|                                  2 |
|                                  4 |
|                                  8 |
+------------------------------------+
3 rows in set (0.00 sec)

現在の日時を表示

SELECT DATEDIFF(NOW(), return_date) 
FROM rental 
LIMIT 3;
MariaDB [sakila]> SELECT DATEDIFF(NOW(), return_date) FROM rental LIMIT 3;
+------------------------------+
| DATEDIFF(NOW(), return_date) |
+------------------------------+
|                         4982 |
|                         4980 |
|                         4976 |
+------------------------------+
3 rows in set (0.00 sec)

日時の表示形式を指定

SELECT DATE_FORMAT(rental_date, '%Y年%m月%d日') 
FROM rental 
LIMIT 3;
MariaDB [sakila]> SELECT DATE_FORMAT(rental_date, '%Y年%m月%d日') FROM rental LIMIT 3;
+------------------------------------------+
| DATE_FORMAT(rental_date, '%Y年%m月%d日') |
+------------------------------------------+
| 2005年05月24日                           |
| 2005年05月24日                           |
| 2005年05月24日                           |
+------------------------------------------+
3 rows in set (0.00 sec)