MySQL 如何使用函数在MySQL中计算日期?
在MySQL中,有一些非常有用的函数可用于计算日期。以下是一些常用的函数:
阅读更多:MySQL 教程
1. NOW()函数
NOW()函数返回当前日期和时间。它没有参数。
例如,以下查询将返回当前日期和时间:
SELECT NOW();
输出如下:
'2021-10-13 12:34:56'
2. DATE()函数
DATE()函数将日期和时间值截断为日期部分。它的参数是一个日期/时间值。
例如,以下查询将返回当前日期的日期部分。
SELECT DATE(NOW());
输出如下:
'2021-10-13'
3. DATE_ADD()函数和DATE_SUB()函数
DATE_ADD()函数和DATE_SUB()函数用于向日期加减一定数量的时间段。它们都有三个参数:第一个是日期/时间值,第二个是一个时间段,第三个是一个单位。
以下是一些可用单位的列表:
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
例如,以下查询将返回今天加上10天的日期。
SELECT DATE_ADD(NOW(), INTERVAL 10 DAY);
输出如下:
'2021-10-23 12:34:56'
以下查询将返回一个月前的日期。
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
输出如下:
'2021-09-13 12:34:56'
4. DATEDIFF()函数
DATEDIFF()函数用于计算两个日期之间的天数差。它有两个参数:第一个是开始日期,第二个是结束日期。
例如,以下查询将返回从今天到2022年1月1日的天数。
SELECT DATEDIFF('2022-01-01', NOW());
输出如下:
'80'
5. DATE_FORMAT()函数
DATE_FORMAT()函数用于将日期/时间值格式化为指定的字符串。它有两个参数:第一个是要格式化的日期/时间值,第二个是要生成的格式。
下面列出了一些可用的格式:
- %Y:四位数的年份
- %m:两位数的月份(01到12)
- %d:两位数的日期(01到31)
- %H:两位数的小时(00到23)
- %i:两位数的分钟数(00到59)
- %s:两位数的秒数(00到59)
例如,以下查询将返回当前日期的英文名称。
SELECT DATE_FORMAT(NOW(), '%W');
输出如下:
'Wednesday'
6. TIMESTAMPDIFF()函数
TIMESTAMPDIFF()函数用于计算两个日期/时间之间的差值。它有三个参数:第一个是单位,第二个是起始日期/时间,第三个是结束日期/时间。
以下是一些可用单位的列表:
- YEAR
- QUARTER
- MONTH
- DAY
- HOUR
- MINUTE
- SECOND
- MICROSECOND
例如,以下查询将返回现在和2022年1月1日之间的秒数。
SELECT TIMESTAMPDIFF(SECOND, NOW(), '2022-01-01');
输出如下:
'6912000'
结论
上述函数是MySQL中计算日期最常使用的函数。熟悉它们可以帮助您更轻松地计算和操作日期。