mysql> SELECT * FROM orders WHERE UNIX_TIMESTAMP(create_time) > 1682784000;
+----+---------------------+
| id | create_time         |
+----+---------------------+
|  4 | 2023-05-01 09:15:00 |
|  5 | 2023-05-02 11:20:00 |
|  6 | 2023-05-05 08:50:00 |
+----+---------------------+
3 rows in set (0.00 sec)

mysql>


这里,1682784000 是 2023-04-30 的 Unix 时间戳。


 


使用 DAY,MONTH 和 YEAR 函数


有时,我们只关心日期的某一部分。例如,查找所有在 10 号创建的订单,可以使用 DAY 函数:
mysql> SELECT * FROM orders WHERE DAY(create_time) = 10;
+----+---------------------+
| id | create_time         |
+----+---------------------+
|  2 | 2023-04-10 10:30:00 |
+----+---------------------+
1 row in set (0.00 sec)

mysql>

查找所有在 4 月份创建的订单,可以使用 MONTH 函数:

mysql> SELECT * FROM orders WHERE MONTH(create_time) = 4;
+----+---------------------+
| id | create_time         |
+----+---------------------+
|  2 | 2023-04-10 10:30:00 |
|  3 | 2023-04-22 16:45:00 |
+----+---------------------+
2 rows in set (0.00 sec)

mysql>

查找所有在 2023 年创建的订单mysql获取当前时间,可以使用 YEAR 函数:

mysql获取当前时间_mysql 获取当前时间戳_mysql获取当前星期几

mysql> SELECT * FROM orders WHERE YEAR(create_time) = 2023;
+----+---------------------+
| id | create_time         |
+----+---------------------+
|  1 | 2023-03-15 14:00:00 |
|  2 | 2023-04-10 10:30:00 |
|  3 | 2023-04-22 16:45:00 |
|  4 | 2023-05-01 09:15:00 |
|  5 | 2023-05-02 11:20:00 |
|  6 | 2023-05-05 08:50:00 |
+----+---------------------+
6 rows in set (0.00 sec)

mysql>

使用DATEDIFF函数

DATEDIFF 函数是 MySQL 中的一个很有用的函数,用于计算两个日期之间的天数差。例如,我们想找出所有在过去 30 天内创建的订单:

mysql> SELECT * FROM orders WHERE DATEDIFF(NOW(), create_time) <= 30;
+----+---------------------+
| id | create_time         |
+----+---------------------+
|  4 | 2023-05-01 09:15:00 |
|  5 | 2023-05-02 11:20:00 |
|  6 | 2023-05-05 08:50:00 |
+----+---------------------+
3 rows in set (0.00 sec)

mysql>


这里,DATEDIFF(NOW(), create_time) 就会返回 create_time 和当前时间之间的天数差。如果这个差值小于或等于 30,就表示这个订单在过去 30 天内创建。

再举个例子,使用DATEDIFF函数比较'2023-05-23','2023-05-20'这两个时间的大小:

mysql> select DATEDIFF('2023-05-20','2023-05-23');
+-------------------------------------+
| DATEDIFF('2023-05-20','2023-05-23') |
+-------------------------------------+
|                                  -3 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql>

可以看到比较的结果是 -3 ,小于0 说明前者小于后者,也就是 '2023-05-20' < '2023-05-23'

结语

现在mysql获取当前时间,你已经学习了在 MySQL 中比较时间的各种方法,包括直接比较(使用比较符号),使用 TIMESTAMP, UNIX_TIMESTAMP, DATE,MONTH,YEAR函数,以及 DATEDIFF 函数。希望这些知识能够帮助你更高效地处理数据库中的时间数据。

继续保持你的好奇心,并积极探索更多的可能性。下期我们会带来更多有趣和实用的 MySQL 技巧,敬请期待!

若近期有面试的准备,那么这有一份MySQL面试题,相信会对你有所帮助;关注公众号回复 " MySQL面试 ",长按复制关键字,回复获取下载链接;

感谢您的阅读,若对您有所帮助,也希望得到您的点赞!我们下篇文章见!

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688