MySQL取当前日期

MySQL取当前日期

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提供了多种方法来获取当前日期和指定日期,并且支持对日期进行格式化输出和计算。根据实际需求,我们可以选择合适的方式来操作日期数据,从而更好地满足业务需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程