MySQL内置函数
1. 日期函数
- 获得年月日:(current_date()函数的使用)
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2024-07-11 |
+----------------+
1 row in set (0.00 sec)
- 获得时分秒:(current_time()函数的使用)
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 09:29:58 |
+----------------+
1 row in set (0.00 sec)
- 获得时间戳:(current_timestamp()函数的使用)
mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2024-07-11 09:30:54 |
+---------------------+
1 row in set (0.00 sec)
- 在日期的基础上加日期:(date_add()函数的使用)
mysql> select date_add("2024-07-11", interval 30 day);
+-----------------------------------------+
| date_add("2024-07-11", interval 30 day) |
+-----------------------------------------+
| 2024-08-10 |
+-----------------------------------------+
1 row in set (0.00 sec)
- 在日期的基础上减去时间:(date_sub()函数的使用)
mysql> select date_sub("2024-07-11", interval 30 day);
+-----------------------------------------+
| date_sub("2024-07-11", interval 30 day) |
+-----------------------------------------+
| 2024-06-11 |
+-----------------------------------------+
1 row in set (0.00 sec)
- 计算两个日期之间相差多少天:(time_diff()函数的使用)
mysql> select datediff("2024-07-11", "2004-06-29");
+--------------------------------------+
| datediff("2024-07-11", "2004-06-29") |
+--------------------------------------+
| 7317 |
+--------------------------------------+
1 row in set (0.00 sec)
案例1:
- 创建一张表,记录生日
mysql> create table tmp(
-> id int primary key auto_increment,
-> birthday date
-> );
Query OK, 0 rows affected (0.01 sec)
- 添加当前日期:(current_date()函数的使用)
mysql> insert into tmp (birthday)values(current_date());
Query OK, 1 row affected (0.00 sec)
mysql> select * from tmp;
+----+------------+
| id | birthday |
+----+------------+
| 1 | 2024-07-11 |
+----+------------+
1 row in set (0.00 sec)
案例2:
- 创建一个留言表
mysql> create table msg (
-> id int primary key auto_increment,
-> content varchar(30) not null,
-> sendtime datetime
-> );
Query OK, 0 rows affected (0.01 sec)
- 插入数据
mysql> insert into msg (content,sendtime)values('hello1', now());
Query OK, 1 row affected (0.00 sec)
mysql> insert into msg (content,sendtime)values('hello2', now());
Query OK, 1 row affected (0.00 sec)
mysql> select * from msg;
+----+---------+---------------------+
| id | content | sendtime |
+----+---------+---------------------+
| 1 | hello1 | 2024-07-11 09:44:23 |
| 2 | hello2 | 2024-07-11 0