MySQL获取日期
在开发和管理数据库应用程序时,经常需要使用到日期和时间相关的操作。MySQL作为一种流行的关系型数据库管理系统,提供了丰富的日期和时间函数,用于获取、处理和计算日期。本文将详细介绍在MySQL中获取日期的方法和常用的日期函数。
1. 获取当前日期和时间
在MySQL中,可以使用CURDATE()
函数获取当前日期,使用CURTIME()
函数获取当前时间。以下是获取当前日期和时间的示例代码和运行结果:
SELECT CURDATE(); -- 获取当前日期
SELECT CURTIME(); -- 获取当前时间
运行结果:
+------------+
| CURDATE() |
+------------+
| 2022-01-01 |
+------------+
+-----------+
| CURTIME() |
+-----------+
| 14:01:23 |
+-----------+
CURDATE()
函数返回的日期格式为YYYY-MM-DD
,CURTIME()
函数返回的时间格式为HH:MM:SS
。
2. 获取指定日期和时间
除了获取当前日期和时间,还可以通过一些函数获取指定的日期和时间。常用的函数包括:DATE()
、TIME()
和DATETIME()
。以下是获取指定日期和时间的示例代码和运行结果:
SELECT DATE('2022-01-01'); -- 获取指定日期的日期部分
SELECT TIME('14:30:00'); -- 获取指定时间的时间部分
SELECT DATETIME('2022-01-01 14:30:00'); -- 获取指定日期和时间
运行结果:
+---------------------+
| DATE('2022-01-01') |
+---------------------+
| 2022-01-01 |
+---------------------+
+------------------+
| TIME('14:30:00') |
+------------------+
| 14:30:00 |
+------------------+
+----------------------------------+
| DATETIME('2022-01-01 14:30:00') |
+----------------------------------+
| 2022-01-01 14:30:00 |
+----------------------------------+
DATE()
函数将指定的日期字符串转换为日期类型,只保留日期部分;TIME()
函数将指定的时间字符串转换为时间类型,只保留时间部分;DATETIME()
函数将指定的日期和时间字符串转换为日期时间类型。
3. 格式化日期和时间
通过MySQL提供的日期格式化函数,可以将日期和时间格式化为指定的格式。常用的日期格式化函数包括:DATE_FORMAT()
、TIME_FORMAT()
和DATE_ADD()
。以下是格式化日期和时间的示例代码和运行结果:
SELECT DATE_FORMAT('2022-01-01', '%Y年%m月%d日'); -- 格式化日期
SELECT TIME_FORMAT('14:30:00', '%H时%i分%s秒'); -- 格式化时间
SELECT DATE_FORMAT('2022-01-01 14:30:00', '%Y年%m月%d日 %H时%i分%s秒'); -- 格式化日期和时间
SELECT DATE_ADD('2022-01-01', INTERVAL 1 DAY); -- 日期加减运算
运行结果:
+--------------------------------+
| DATE_FORMAT('2022-01-01', '%Y年%m月%d日') |
+--------------------------------+
| 2022年01月01日 |
+--------------------------------+
+-------------------------------+
| TIME_FORMAT('14:30:00', '%H时%i分%s秒') |
+-------------------------------+
| 14时30分00秒 |
+-------------------------------+
+-----------------------------------------------------+
| DATE_FORMAT('2022-01-01 14:30:00', '%Y年%m月%d日 %H时%i分%s秒') |
+-----------------------------------------------------+
| 2022年01月01日 14时30分00秒 |
+-----------------------------------------------------+
+----------------------------+
| DATE_ADD('2022-01-01', INTERVAL 1 DAY) |
+----------------------------+
| 2022-01-02 |
+----------------------------+
DATE_FORMAT()
函数将日期和时间按照指定的格式进行格式化输出,其中格式控制符%Y
表示年份、%m
表示月份、%d
表示日期、%H
表示小时、%i
表示分钟、%s
表示秒钟;TIME_FORMAT()
函数将时间按照指定的格式进行格式化输出,其中格式控制符与日期格式相似;DATE_ADD()
函数可以对日期进行加减运算,可以指定天数、小时数、分钟数等进行偏移。
4. 获取日期和时间的部分
有时候只需要获取日期或时间的部分,可以使用YEAR()
、MONTH()
、DAY()
、HOUR()
、MINUTE()
和SECOND()
等函数。以下是获取日期和时间的部分的示例代码和运行结果:
SELECT YEAR('2022-01-01'); -- 获取年份
SELECT MONTH('2022-01-01'); -- 获取月份
SELECT DAY('2022-01-01'); -- 获取日期
SELECT HOUR('14:30:00'); -- 获取小时
SELECT MINUTE('14:30:00'); -- 获取分钟
SELECT SECOND('14:30:00'); -- 获取秒钟
运行结果:
+-----------------+
| YEAR('2022-01-01') |
+-----------------+
| 2022 |
+-----------------+
+------------------+
| MONTH('2022-01-01') |
+------------------+
| 1 |
+------------------+
+----------------+
| DAY('2022-01-01') |
+----------------+
| 1 |
+----------------+
+------------------+
| HOUR('14:30:00') |
+------------------+
| 14 |
+------------------+
+--------------------+
| MINUTE('14:30:00') |
+--------------------+
| 30 |
+--------------------+
+--------------------+
| SECOND('14:30:00') |
+--------------------+
| 00 |
+--------------------+
5. 获取当前日期和时间的部分
通过上述的函数,可以获取给定日期和时间的部分。如果只需要获取当前日期或时间的部分,可以使用YEAR(CURDATE())
、MONTH(CURDATE())
、DAY(CURDATE())
、HOUR(CURTIME())
、MINUTE(CURTIME())
和SECOND(CURTIME())
等函数。以下是获取当前日期和时间的部分的示例代码和运行结果:
SELECT YEAR(CURDATE()); -- 获取当前年份
SELECT MONTH(CURDATE()); -- 获取当前月份
SELECT DAY(CURDATE()); -- 获取当前日期
SELECT HOUR(CURTIME()); -- 获取当前小时
SELECT MINUTE(CURTIME()); -- 获取当前分钟
SELECT SECOND(CURTIME()); -- 获取当前秒钟
运行结果:
+----------------+
| YEAR(CURDATE()) |
+----------------+
| 2022 |
+----------------+
+-----------------+
| MONTH(CURDATE()) |
+-----------------+
| 1 |
+-----------------+
+---------------+
| DAY(CURDATE()) |
+---------------+
| 1 |
+---------------+
+----------------+
| HOUR(CURTIME()) |
+----------------+
| 14 |
+----------------+
+------------------+
| MINUTE(CURTIME()) |
+------------------+
| 30 |
+------------------+
+------------------+
| SECOND(CURTIME()) |
+------------------+
| 00 |
+------------------+