MySQL取当前日期
一、背景介绍
在数据库操作中,经常需要使用到日期数据,并且还要进行一些日期相关的计算和比较。而在MySQL中,可以方便地获取当前日期,并且可以对日期进行各种操作。
二、MySQL中获取当前日期的几种方法
1. 使用CURDATE()
函数
在MySQL中,使用CURDATE()
函数可以获取当前日期。该函数不需要传入任何参数,直接调用即可。
示例代码:
SELECT CURDATE();
代码运行结果:
+------------+
| CURDATE() |
+------------+
| 2023-04-20 |
+------------+
2. 使用CURRENT_DATE
关键字
除了使用CURDATE()
函数,还可以使用CURRENT_DATE
关键字来获取当前日期。与CURDATE()
函数类似,CURRENT_DATE
也不需要传入任何参数。
示例代码:
SELECT CURRENT_DATE;
代码运行结果:
+--------------+
| CURRENT_DATE |
+--------------+
| 2023-04-20 |
+--------------+
3. 使用NOW()
函数
NOW()
函数可以获取当前日期和时间,而如果只需要获取日期部分,可以使用DATE()
函数来截取。
示例代码:
SELECT DATE(NOW());
代码运行结果:
+--------------+
| DATE(NOW()) |
+--------------+
| 2023-04-20 |
+--------------+
三、MySQL中获取当前日期的格式化输出
在实际应用中,有时候需要将日期以一定的格式进行输出,MySQL提供了一些函数来实现这个目的。下面介绍几种常用的格式化日期的方法。
1. 使用DATE_FORMAT()
函数
DATE_FORMAT()
函数可以将日期按照指定的格式进行输出。常用的格式化字符如下:
%Y
:四位数的年份%y
:两位数的年份%m
:月份(01-12)%d
:日期(01-31)%H
:小时(00-23)%i
:分钟(00-59)%s
:秒(00-59)
示例代码:
SELECT DATE_FORMAT(DATE(NOW()), '%Y-%m-%d');
代码运行结果:
+----------------------------------+
| DATE_FORMAT(DATE(NOW()), '%Y-%m-%d') |
+----------------------------------+
| 2023-04-20 |
+----------------------------------+
2. 使用DATE_FORMAT()
函数结合CONCAT()
函数
如果需要在日期格式化的同时添加其他文本,可以使用CONCAT()
函数将文本和日期进行拼接。
示例代码:
SELECT CONCAT('今天是', DATE_FORMAT(DATE(NOW()), '%Y年%m月%d日'));
代码运行结果:
+---------------------------------------------+
| CONCAT('今天是', DATE_FORMAT(DATE(NOW()), '%Y年%m月%d日')) |
+---------------------------------------------+
| 今天是2023年04月20日 |
+---------------------------------------------+
3. 使用DATE_FORMAT()
函数自定义日期格式
除了上述常用的格式化字符,DATE_FORMAT()
函数还支持自定义的格式,例如星期的输出、上午/下午的标识等。
%W
:星期的完整文本格式(Sunday-Saturday)%w
:星期的数值格式(0-6)%a
:上午/下午的标识(AM/PM)%T
:时间的24小时制格式(hh:mm:ss)
示例代码:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %W %T');
代码运行结果:
+----------------------------------+
| DATE_FORMAT(NOW(), '%Y-%m-%d %W %T') |
+----------------------------------+
| 2023-04-20 Thursday 22:26:47 |
+----------------------------------+
四、MySQL中获取指定日期
除了获取当前日期,有时候还需要获取指定的日期,例如获取昨天的日期、上个月的日期等。
1. 使用INTERVAL
关键字进行日期计算
在MySQL中,使用INTERVAL
关键字可以进行日期的加减运算。可以将INTERVAL
关键字与数字和日期函数结合使用来获取指定的日期。
示例代码:
-- 获取昨天的日期
SELECT DATE(NOW() - INTERVAL 1 DAY);
-- 获取上个月的日期(同年)
SELECT DATE(NOW() - INTERVAL 1 MONTH);
-- 获取去年的日期
SELECT DATE(NOW() - INTERVAL 1 YEAR);
代码运行结果:
+---------------------------+
| DATE(NOW() - INTERVAL 1 DAY) |
+---------------------------+
| 2023-04-19 |
+---------------------------+
+----------------------------+
| DATE(NOW() - INTERVAL 1 MONTH) |
+----------------------------+
| 2023-03-20 |
+----------------------------+
+----------------------------+
| DATE(NOW() - INTERVAL 1 YEAR) |
+----------------------------+
| 2022-04-20 |
+----------------------------+
2. 使用DATE_ADD()
、DATE_SUB()
函数
除了使用INTERVAL
关键字进行日期计算,还可以使用DATE_ADD()
和DATE_SUB()
函数来实现。
示例代码:
-- 获取昨天的日期
SELECT DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);
-- 获取上个月的日期(同年)
SELECT DATE_SUB(DATE(NOW()), INTERVAL 1 MONTH);
-- 获取去年的日期
SELECT DATE_SUB(DATE(NOW()), INTERVAL 1 YEAR);
代码运行结果:
+------------------------------------+
| DATE_SUB(DATE(NOW()), INTERVAL 1 DAY) |
+------------------------------------+
| 2023-04-19 |
+------------------------------------+
+---------------------------------+
| DATE_SUB(DATE(NOW()), INTERVAL 1 MONTH) |
+---------------------------------+
| 2023-03-20 |
+---------------------------------+
+---------------------------------+
| DATE_SUB(DATE(NOW()), INTERVAL 1 YEAR) |
+---------------------------------+
| 2022-04-20 |
+---------------------------------+
五、总结
MySQL提供了多种方法来获取当前日期和指定日期,并且支持对日期进行格式化输出和计算。根据实际需求,我们可以选择合适的方式来操作日期数据,从而更好地满足业务需求。