MySQL常用时间函数详解(推荐)
时间格式定义
在使用MySQL时间函数之前,我们需要了解几种时间格式的定义。
DATE
时间格式:格式为YYYY-MM-DD
,例如:2022-01-01
。DATETIME
时间格式:格式为YYYY-MM-DD HH:MI:SS
,例如:2022-01-01 12:01:01
。TIMESTAMP
时间格式:格式为YYYY-MM-DD HH:MI:SS
,且默认为UTC(协调世界时,不考虑夏令时)时间。在存储时,TIMESTAMP
类型会自动将输入的时间转化为UTC时间。例如:2022-01-01 12:01:01
。TIME
时间格式:格式为HH:MI:SS
,例如:12:01:01
。
常用时间函数
下面详细介绍MySQL常用的时间函数。
1. CURRENT_DATE()和CURDATE()
两者作用都是返回当前日期,返回的时间格式为YYYY-MM-DD
。例如:
SELECT CURRENT_DATE();
SELECT CURDATE();
结果都是2022-01-01
。
2. CURRENT_TIME()和CURTIME()
两者作用都是返回当前时间,返回的时间格式为HH:MI:SS
,例如:
SELECT CURRENT_TIME();
SELECT CURTIME();
结果都是12:01:01
。
3. NOW()
NOW()
函数作用是返回当前日期和时间,返回的时间格式为YYYY-MM-DD HH:MI:SS
,例如:
SELECT NOW();
结果是2022-01-01 12:01:01
。
4. YEAR()、MONTH()、DAY()、HOUR()、MINUTE()和SECOND()
这几个函数分别返回时间中的年、月、日、小时、分钟和秒。例如:
SELECT YEAR(NOW()) as '年';
SELECT MONTH(NOW()) as '月';
SELECT DAY(NOW()) as '日';
SELECT HOUR(NOW()) as '小时';
SELECT MINUTE(NOW()) as '分钟';
SELECT SECOND(NOW()) as '秒';
结果分别是:
+----+
| 年 |
+----+
| 2022 |
+----+
+----+
| 月 |
+----+
| 1 |
+----+
+----+
| 日 |
+----+
| 1 |
+----+
+-----+
| 小时 |
+-----+
| 12 |
+-----+
+-------+
| 分钟 |
+-------+
| 1 |
+-------+
+-----+
| 秒 |
+-----+
| 1 |
+-----+
5. DATE_FORMAT()
DATE_FORMAT()
函数可以将指定日期按指定格式进行格式化输出。例如:
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') as '当前日期';
SELECT DATE_FORMAT(NOW(),'%H时%i分%s秒') as '当前时间';
结果分别为:
+-------------+
| 当前日期 |
+-------------+
| 2022年01月01日 |
+-------------+
+-------------+
| 当前时间 |
+-------------+
| 12时01分01秒 |
+-------------+
示例说明
示例1
假设我们有一个名为user
的表,其中有以下字段:id
、username
、create_time
。我们想要查询出表中所有数据的create_time
字段,并且将时间格式化为年-月-日
的格式。SQL语句如下:
SELECT DATE_FORMAT(create_time,'%Y-%m-%d') as '创建时间' FROM user;
示例2
假设我们有一个名为order
的表,其中有以下字段:id
、user_id
、order_number
、create_time
。我们想要查询订单表中一周内的数据,并且按照创建时间进行倒序排序。SQL语句如下:
SELECT * FROM order WHERE create_time > DATE_SUB(NOW(), INTERVAL 7 DAY) ORDER BY create_time DESC;
以上查询语句中用到了DATE_SUB()
函数和INTERVAL
命令,DATE_SUB()
函数可以将指定时间减去指定的时间间隔,INTERVAL
命令用于指定时间间隔,例如:INTERVAL 7 DAY
表示7天的时间间隔。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL常用时间函数详解(推荐) - Python技术站