MYSQL日期与时间函数的实用技巧

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-应用监控,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: MYSQL日期函数与时间函数是数据库操作的关键工具,可轻松处理、查询、比较和格式化日期时间数据。它们能提取日期的年、月、日等部分,便于筛选和统计;同时,也能处理时间数据,如计算时间差、获取当前时间,助力用户更好地管理时间信息。掌握这些函数,不仅能提升数据库操作效率,还能为数据分析和报表生成提供有力支持。无论初学者还是资深数据库管理员,精通MYSQL的日期和时间函数都至关重要,以满足各种数据处理需求,确保数据的准确性和高效性。

 MYSQL日期时间函数是数据库操作中不可或缺的一环,它们能够精确处理和操控时间数据,为数据分析、查询优化和报表生成提供强大的支持。以下是一些常用的MySQL时间函数。

内容有点多,建议收藏以备后续用到查阅参考

目录

一、获取当前日期+时间

二、获取当前日期

三、获取当前时间

四、日期时间选取函数(Extract函数)

五、WEEK相关函数

5.1 WEEK() 函数

5.2 WEEKDAY() 函数

5.3 WEEKOFYEAR() 函数

5.4 YEARWEEK() 函数

六、DAY相关函数

6.1 DAY() 函数

6.2 DAYNAME() 函数

6.3 DAYOFMONTH() 函数

6.4 DAYOFWEEK() 函数

6.5 DAYOFYEAR() 函数

6.6 FROM_DAYS() 函数

6.7 TO_DAYS() 函数

6.8 LAST_DAY() 函数

七、DATE相关函数

7.1 DATE() 函数

7.2 DATE_ADD() 函数

7.3 DATE_FORMAT() 函数

7.4 DATE_SUB() 函数

7.5 DATEDIFF() 函数

7.6 ADDDATE() 函数

7.7 MAKEDATE() 函数

7.8 STR_TO_DATE() 函数

7.9 SUBDATE() 函数

八、TIME相关函数

8.1 TIME() 函数

8.2 TIME_FORMAT函数

8.3 TIME_TO_SEC() 函数

8.4 TIMEDIFF() 函数

8.5 TIMESTAMP() 函数

8.6 TIMESTAMPADD() 函数

8.7 TIMESTAMPDIFF() 函数

8.8 ADDTIME() 函数

8.9 LOCALTIME() 函数

8.10 LOCALTIMESTAMP() 函数

8.11 MAKETIME() 函数

8.12 SEC_TO_TIME() 函数

8.13 SUBTIME() 函数

8.14 UNIX_TIMESTAMP() 函数

九、CUR相关函数

9.1 CURDATE() 函数

9.2 CURRENT_DATE() 函数

9.3 CURRENT_TIME() 函数

9.4 CURRENT_TIMESTAMP() 函数

9.5 CURTIME() 函数

十、其它日期时间函数

10.1 MICROSECOND() 函数

10.2 SECOND() 函数

10.3 MINUTE() 函数

10.4 HOUR() 函数

10.5 DAY() 函数

10.6 MONTH() 函数

10.7 QUARTER() 函数

10.8 YEAR() 函数

10.9 TO_SECONDS() 函数

10.10 MONTHNAME() 函数

10.11 PERIOD_ADD() 函数

10.12 PERIOD_DIFF() 函数

10.13 CONVERT_TZ() 函数

12.14 UTC函数


一、获取当前日期+时间

语法:

NOW(M)

image.gif

参数说明:

  • M:非必须。保留的微秒位数,最大值为6。

示例:

mysql> SELECT NOW(), NOW()+1, NOW(6), NOW(6)+1;
+---------------------+----------------+---------------------------+-----------------------+
| NOW()               | NOW()+1        | NOW(6)                    | NOW(6)+1              |
+---------------------+-----------------------+--------------------+-----------------------+
| 2023-10-22 10:04:04 | 20231022100405 | 2023-10-22 10:04:04.485897| 20231022100405.485897 |
+---------------------+-----------------------+--------------------+-----------------------+

image.gif

说明:

  • NOW() 的结果为 YYYY-MM-DD hh:mm:ss 格式。
  • NOW() + 0 的结果为 YYYYMMDDhhmmss 格式。NOW() + M 意味着当前时间加上 M 秒。
  • + M 均为当前时间格式上加 M 秒。
  • 除了 NOW()获取当前日期时间外,还有:(语法和使用均与NOW()相似)
  • SYSDATE()。
  • LOCALTIME。
  • LOCALTIME()。
  • CURRENT_TIMESTAMP。
  • CURRENT_TIMESTAMP()。

二、获取当前日期

mysql> SELECT CURDATE(), CURDATE()+1;
+---------------------+-----------------------+
| CURDATE()           | CURDATE()+1           |
+---------------------+-----------------------+
| 2023-10-22          | 20231023              |
+---------------------+-----------------------+

image.gif

  • 无参

说明:

  • CURDATE()的结果为 YYYY-MM-DD 格式。
  • CURDATE() + 0 的结果为 YYYYMMDD 格式。CURDATE() + N 意味着当前日期加上一个数字。
  • 除了 CURDATE() 能获取当前日期外,还有:(+ N 意味着当前日期加上一个数字)
  • CURRENT_DATE。
  • CURRENT_DATE()。

三、获取当前时间

语法:

CURTIME(M)

image.gif

参数说明:

  • M:非必须。保留的微秒位数,最大值为6。

示例:

mysql> SELECT CURTIME(), CURTIME() + 1, CURTIME(6), CURTIME(6) + 1;
+---------------------+-----------------------+------------------+
| CURDATE()  | CURDATE() + 1 | CURTIME(6)       | CURTIME(6) + 1 |
+---------------------+-----------------------+------------------+
| 18:51:58   | 185159         | 18:51:58.994696  | 185159.994696   |
+---------------------+-----------------------+------------------+

image.gif

说明:

  • CURTIME() 的结果为 hh:mm:ss 格式。
  • CURTIME() + 0 的结果为 hhmmss 格式。NOW() + M 意味着当前时间加上 M 秒。
  • + M 均为当前时间格式上加 M

注:UTC日期时间与上述日期时间输出格式相同(减8个小时)有

  • UTC_DATE、UTC_DATE()
  • UTC_TIME、UTC_TIME()
  • UTC_TIMESTAMP、UTC_TIMESTAMP()

       因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候,非常有用。

四、日期时间选取函数(Extract函数)

MySQL EXTRACT() 函数从指定的日期/时间中提取指定的部分并返回。

语法:

EXTRACT(unit FROM date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。
  • unit:必需的。需要提取的部分的标识。可以是以下值中的一个:
  • YEAR 年
  • QUARTER 季
  • MONTH 月
  • WEEK 周
  • DAY 日
  • HOUR 时
  • MINUTE 分
  • SECOND 秒
  • MICROSECOND 微秒
  • YEAR_MONTH 年+月
  • DAY_HOUR 日+时
  • DAY_MINUTE 日+时+分
  • DAY_SECOND 日+时+分+秒
  • DAY_MICROSECOND 日+时+分+秒+微秒
  • HOUR_MINUTE 时+分
  • HOUR_SECOND 时+分+秒
  • HOUR_MICROSECOND 时+分+秒+微秒
  • MINUTE_SECOND 分+秒
  • MINUTE_MICROSECOND 分+秒+微秒
  • SECOND_MICROSECOND 秒+微秒

返回值:

  • 从指定的日期/时间中提取指定的部分并返回。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

mysql> set @date = NOW(6);
mysql> SELECT @date;
+---------------------+-----------------------+
| @date                                       |
+---------------------+-----------------------+
| 2023-10-22 18:07:46.304775                  |
+---------------------+-----------------------+
SELECT EXTRACT(YEAR                FROM @date);     -- 2023
SELECT EXTRACT(QUARTER             FROM @date);     -- 4
SELECT EXTRACT(MONTH               FROM @date);     -- 10
SELECT EXTRACT(WEEK                FROM @date);     -- 43
SELECT EXTRACT(DAY                 FROM @date);     -- 22
SELECT EXTRACT(HOUR                FROM @date);     -- 8
SELECT EXTRACT(MINUTE              FROM @date);     -- 7
SELECT EXTRACT(SECOND              FROM @date);     -- 46
SELECT EXTRACT(MICROSECOND         FROM @date);     -- 304775
SELECT EXTRACT(YEAR_MONTH          FROM @date);     -- 202310
SELECT EXTRACT(DAY_HOUR            FROM @date);     -- 2218
SELECT EXTRACT(DAY_MINUTE          FROM @date);     -- 221807
SELECT EXTRACT(DAY_SECOND          FROM @date);     -- 22180746
SELECT EXTRACT(DAY_MICROSECOND     FROM @date);     -- 22180746304775
SELECT EXTRACT(HOUR_MINUTE         FROM @date);     --    807
SELECT EXTRACT(HOUR_SECOND         FROM @date);     --    80746
SELECT EXTRACT(HOUR_MICROSECOND    FROM @date);     --    80746304775
SELECT EXTRACT(MINUTE_SECOND       FROM @date);     --      746
SELECT EXTRACT(MINUTE_MICROSECOND  FROM @date);     --      746304775
SELECT EXTRACT(SECOND_MICROSECOND  FROM @date);     --       46304775

image.gif

五、WEEK相关函数

5.1 WEEK() 函数

MySQL WEEK() 函数返回给定日期位于当年的第几周。

语法:

WEEK(date)
WEEK(date, mode)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。
  • mode:可选的。确定计算周的逻辑。如果没有指定该参数,默认将使用 default_week_format 变量的值。

返回值:

  • 返回给定日期位于当年的第几周,取值范围为 053
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

mode 参数的处理逻辑如下:

Mode  每周的第一天  返回值范围 对第一周的要求
0     星期天     0-53  
1     星期一     0-53      在本年至少 4 天
2     星期天     1-53  
3     星期一     1-53      在本年至少 4 天
4     星期天     0-53      在本年至少 4 天
5     星期一     0-53  
6     星期天     1-53      在本年至少 4 天
7     星期一     1-53

image.gif

示例:

SELECT
    WEEK('2023-01-01'),                             -- 1
    WEEK('2023-01-01', 0),                          -- 1
    WEEK('2023-01-03', 0),                          -- 1
    WEEK('2023-01-01', 1),                          -- 0
    WEEK('2023-01-03', 1),                          -- 1
    WEEK('2023-01-01', 2),                          -- 1
    WEEK('2023-01-03', 2),                          -- 1
    WEEK('2023-01-01', 3),                          -- 52
    WEEK('2023-01-03', 3),                          -- 1
    WEEK('2023-01-01', 4),                          -- 1
    WEEK('2023-01-03', 4),                          -- 1
    WEEK('2023-01-01', 5),                          -- 0
    WEEK('2023-01-03', 5),                          -- 1
    WEEK('2023-01-01', 6),                          -- 1
    WEEK('2023-01-03', 6),                          -- 1
    WEEK('2023-01-01', 7),                          -- 52
    WEEK('2023-01-03', 7)                         -- 1

image.gif

5.2 WEEKDAY() 函数

MySQL WEEKDAY() 函数返回给定日期的工作日编号。

语法:

WEEKDAY(date)

image.gif

参数说明:

  • date: 必需的。一个日期或者日期时间表达式。

返回值:

  • 0 :Monday
  • 1 :Tuesday
  • 2 :Wednesday
  • 3 :Thursday
  • 4 :Friday
  • 5 :Saturday
  • 6 :Sunday
  • 返回 NULL 情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    WEEKDAY('2023-10-21'),                          -- 5
    WEEKDAY('2023-10-22'),                          -- 6
    WEEKDAY('2023-10-23'),                          -- 0
    WEEKDAY('2023-10-24'),                          -- 1
    WEEKDAY('2023-10-25'),                          -- 2
    WEEKDAY('2023-10-26'),                          -- 3
    WEEKDAY('2023-10-27')                           -- 4

image.gif

  • 如果想返回今天的工作日名称,参数用 NOW()、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

5.3 WEEKOFYEAR() 函数

MySQL WEEKOFYEAR() 函数返回给定日期位于当年的第几周。该函数相当于WEEK(date,3)。

语法:

WEEKOFYEAR(date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回给定日期位于当年的第几周,取值范围为 153。
  • 该函数的前提是“一周的第一天是星期一,并且一年中的第一周有 3 天以上”,它相当于 WEEK(date,3)。
  • 返回 NULL 情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT WEEKOFYEAR('2023-01-01'),                     -- 52(2023年第一周只有2天)
  WEEKOFYEAR('2023-01-02'),                        -- 1
  WEEKOFYEAR('2023-01-03'),                      -- 1
  WEEKOFYEAR('2024-01-01'),                        -- 1 (2024年第一周大于3天)
  WEEKOFYEAR('2024-01-02'),                        -- 1
  WEEKOFYEAR('2024-01-03');                        -- 1

image.gif

  • 如果没有指定 mode 参数,WEEK() 默认将使用 default_week_format 变量的值。
  • 我们可以通过以下语句查看 default_week_format 变量的值。
mysql> SHOW VARIABLES LIKE 'default_week_format';;
+---------------------+-----------------+
| Variable               | Value        |
+---------------------+-----------------+
| default_week_format    | 0            |
+---------------------+-----------------+
  • image.gif

5.4 YEARWEEK() 函数

MySQL YEARWEEK() 函数返回一个表示给定日期所在年份和第几周的数字。此函数与 WEEK() 类似。

语法:

YEARWEEK(date)
YEARWEEK(date, mode)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。
  • mode:可选的。确定计算周的逻辑。如果没有指定该参数,默认将使用 default_week_format 变量的值。

返回值:

  • 返回一个表示给定日期所在年份和第几周的数字。
  • 返回 NULL 情况
  • 定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

mode 参数的处理逻辑如下:

Mode  每周的第一天  返回值范围 对第一周的要求
0     星期天     0-53  
1     星期一     0-53      在本年至少 4 天
2     星期天     1-53  
3     星期一     1-53      在本年至少 4 天
4     星期天     0-53      在本年至少 4 天
5     星期一     0-53  
6     星期天     1-53      在本年至少 4 天
7     星期一     1-53

image.gif

示例:

SELECT
    YEARWEEK('2023-01-01'),                       -- 202301
    YEARWEEK('2023-01-01', 0),                      -- 202301
    YEARWEEK('2023-01-03', 0),                      -- 202301
    YEARWEEK('2023-01-01', 1),                      -- 202252
    YEARWEEK('2023-01-03', 1),                      -- 202301
    YEARWEEK('2023-01-01', 2),                      -- 202301
    YEARWEEK('2023-01-03', 2),                      -- 202301
    YEARWEEK('2023-01-01', 3),                      -- 202252
    YEARWEEK('2023-01-03', 3),                      -- 202301
    YEARWEEK('2023-01-01', 4),                      -- 202301
    YEARWEEK('2023-01-03', 4),                      -- 202301
    YEARWEEK('2023-01-01', 5),                      -- 202252
    YEARWEEK('2023-01-03', 5),                      -- 202301
    YEARWEEK('2023-01-01', 6),                      -- 202301
    YEARWEEK('2023-01-03', 6),                      -- 202301
    YEARWEEK('2023-01-01', 7),                      -- 202352
    YEARWEEK('2023-01-03', 7)                     -- 202301

image.gif

  • 如果没有指定 mode 参数,WEEK() 默认将使用 default_week_format 变量的值。
  • 我们可以通过以下语句查看 default_week_format 变量的值。
mysql> SHOW VARIABLES LIKE 'default_week_format';;
+---------------------+-----------------+
| Variable               | Value        |
+---------------------+-----------------+
| default_week_format    | 0            |
+---------------------+-----------------+
  • image.gif

六、DAY相关函数

6.1 DAY() 函数

MySQL DAY() 函数返回日期时间表达式中的代表月份中的一天的数字。此函数等同于 DAYOFMONTH() 函数。

语法:

DAY(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回日期时间表达式中的代表月份中的一天的数字,从 1 到 31。
  • 返回 NULL情况:
  • 如果指定的表达式不是一个合法的日期或者日期时间。
  • 如果参数为 NULL

示例:

SELECT
    DAY('2023-10-22'),                      -- 22
    DAY('2023-10-22 18:10:10'),                     -- 22
    DAY(NOW()),                           -- 22
    DAY('2023-02-00'),                      -- 0
    DAY('2023-02-30'),                      -- NULL
    DAY('Not A DATE'),                      -- NULL
    DAY(NULL)                         -- NULL

image.gif

6.2 DAYNAME() 函数

MySQL DAYNAME() 函数返回给定日期的工作日名称。

语法:

DAYNAME(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回给定日期的工作日名称,返回值将是以下值中的一个: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    DAYNAME('2023-10-22'),                          -- Sunday
    DAYNAME('2023-10-23'),                          -- Monday
    DAYNAME('2023-10-24'),                          -- Tuesday
    DAYNAME('2023-10-25'),                          -- Wednesday
    DAYNAME('2023-10-26'),                          -- Thursday
    DAYNAME('2023-10-27'),                          -- Friday
    DAYNAME('2023-10-28'),                          -- Saturday
    DAYNAME(NOW()),                                 -- Sunday
    DAYNAME('2023-02-00'),                          -- NULL
    DAYNAME('2023-02-30'),                          -- NULL
    DAYNAME('Not A DATE'),                          -- NULL
    DAYNAME(NULL)                                 -- NULL

image.gif

  • 如果想返回今天的工作日名称,参数用 NOW(),、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

6.3 DAYOFMONTH() 函数

MySQL DAYOFMONTH() 函数返回日期时间表达式中的代表月份中的一天的数字。此函数等同于 DAY() 函数。

语法:

DAYOFMONTH(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回日期时间表达式中的代表月份中的一天的数字,从 1 到 31。
  • 如果给定的日期的天的部分为 0 ,比如: '0000-00-00''2008-00-00'DAYOFMONTH() 函数将返回 0。
  • 返回 NULL情况:
  • 表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL

示例:

SELECT
    DAYOFMONTH('2023-10-22'),                     -- 22
    DAYOFMONTH('2023-10-22 11:11:11'),              -- 22
    DAYOFMONTH(NOW()),                              -- 22
    DAYOFMONTH('2023-02-00'),                     -- 0
    DAYOFMONTH('2023-02-30'),                     -- NULL
    DAYOFMONTH('Not A DATE'),                     -- NULL
    DAYOFMONTH(NULL)                              -- NULL

image.gif

6.4 DAYOFWEEK() 函数

MySQL DAYOFWEEK() 函数返回给定日期的工作日的索引。

语法:

DAYOFWEEK(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回一个从 17 之间的数字,代表的含义如下:
  • 1:星期天
  • 2:星期一
  • 3:星期二
  • 4:星期三
  • 5:星期四
  • 6:星期五
  • 7:星期六
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL

示例:

SELECT
    DAYOFWEEK('2023-10-21'),                      -- 7
    DAYOFWEEK('2023-10-22'),                      -- 1
    DAYOFWEEK('2023-10-23'),                      -- 2
    DAYOFWEEK('2023-10-24'),                      -- 3
    DAYOFWEEK('2023-10-25'),                      -- 4
    DAYOFWEEK('2023-10-26'),                      -- 5
    DAYOFWEEK('2023-10-27'),                      -- 6
    DAYOFWEEK(NOW()),                             -- 7
    DAYOFWEEK('2023-02-00'),                      -- NULL
    DAYOFWEEK('2023-02-30'),                      -- NULL
    DAYOFWEEK('Not A DATE'),                      -- NULL
    DAYOFWEEK(NULL)                                 -- NULL

image.gif

6.5 DAYOFYEAR() 函数

MySQL DAYOFYEAR() 函数返回一个从 1366 代表给定日期是一年中的第几天的数字。

语法:

DAYOFYEAR(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回一个从 1366 代表给定日期是一年中的第几天的数字。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    DAYOFYEAR('2023-10-21'),                      -- 294
    DAYOFYEAR('2023-10-22'),                      -- 295
    DAYOFYEAR(NOW()),                             -- 294
    DAYOFWEEK('2023-02-00'),                      -- NULL
    DAYOFWEEK('2023-02-30'),                      -- NULL
    DAYOFWEEK('Not A DATE'),                      -- NULL
    DAYOFWEEK(NULL)                                 -- NULL

image.gif

  • 如果想返回今天的工作日名称,参数用 NOW(),、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

6.6 FROM_DAYS() 函数

MySQL FROM_DAYS() 函数将指定的天数转为日期并返回。FROM_DAYS() 函数与 TO_DAYS() 函数是相反的。

语法:

FROM_DAYS(days)

image.gif

参数说明:

  • days:必需的。一个表示天数的整数值。

返回值:

  • 返回一个由指定天数表示的日期。
  • 返回 NULL情况:
  • 参数为 NULL。

示例:

SELECT
    FROM_DAYS(739179),                              -- 2023-10-21
    FROM_DAYS(739180);                              -- 2023-10-22

image.gif

6.7 TO_DAYS() 函数

MySQL TO_DAYS() 函数将指定日期转为距离 0 年的天数并返回。TO_DAYS() 函数与 FROM_DAYS() 函数是相反的。

语法:

TO_DAYS(date)

image.gif

参数说明:

  • date:必需的。一个日期值。

返回值:

  • 返回指定的日期从 0 年开始的天数。
  • 返回 NULL情况:
  • 参数为 NULL。

示例:

SELECT
    TO_DAYS('2023-10-21'),                          -- 739179
    TO_DAYS(now());                                 -- 739180

image.gif

6.8 LAST_DAY() 函数

MySQL LAST_DAY() 函数返回指定的日期或者日期时间所在当月的最后一天。

语法:

LAST_DAY(date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回指定的日期或者日期时间所在当月的最后一天。
  • 返回 NULL情况:
  • 参数为不合法的日期。
  • 参数为 NULL。

示例:

SELECT
    LAST_DAY('2019-02-01'),                   -- 2019-02-28
    LAST_DAY('2020-02-01'),                   -- 2020-02-28
    LAST_DAY('2021-02-01'),                   -- 2021-02-28
    LAST_DAY('2022-02-01'),                   -- 2022-02-28
    LAST_DAY('2023-02-01 10:11:12'),                -- 2023-02-28
    LAST_DAY(NOW())                         -- 2023-10-31

image.gif

七、DATE相关函数

7.1 DATE() 函数

MySQL DATE() 函数从日期时间表达式中提取日期部分并返回。

语法:

DATE(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回指定的日期或者日期时间表达式中的日期部分。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    DATE('2023-10-22'),                             -- 2023-10-22
    DATE('2023-10-22 11:11:11'),                    -- 2023-10-22
    DATE(NOW()),                                  -- 2023-10-22
    DATE('2023-02-30'),                             -- NULL
    DATE('Not A Date'),                             -- NULL
    DATE(NULL)                                      -- NULL

image.gif

7.2 DATE_ADD() 函数

MySQL DATE_ADD() 函数在指定的日期/时间上加上指定到时间间隔加并返回新的日期/时间。

语法:

DATE_ADD(date, INTERVAL value unit)

image.gif

参数说明:

  • date:必需的。需要操作的日期。
  • value:必需的。时间/日期间隔。正数和负数都是允许的。
  • unit:必需的。时间/日期间隔的单位。单位可以是以下值中的一个:
  • YEAR 年
  • QUARTER 季
  • MONTH 月
  • WEEK 周
  • DAY 日
  • HOUR 时
  • MINUTE 分
  • SECOND 秒
  • MICROSECOND 微秒
  • YEAR_MONTH
  • DAY_HOUR
  • DAY_MINUTE
  • DAY_SECOND
  • DAY_MICROSECOND
  • HOUR_MINUTE
  • HOUR_SECOND
  • HOUR_MICROSECOND
  • MINUTE_SECOND
  • MINUTE_MICROSECOND
  • SECOND_MICROSECOND

返回值:

  • 返回指定的日期/时间添加指定的时间间隔,并返回一个新的日期/时间。
  • 返回值和参数有关:
  • 返回 DATE:如果 date 参数是 DATE 类型,并且时间间隔为 YEAR, MONTH 或者 DAY
  • 返回 DATETIME:
  • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURS, MINUTES 或者 SECONDS
  • 如果 date 参数是 DATETIME 类型。
  • 如果 date 参数是 TIME 类型,并且时间间隔为 YEAR, MONTH 或者 DAY。
  • 返回 TIME:返回 TIME。
  • 其它情况返回字符串。

示例:

SELECT
    NOW(6),                     -- 2023-10-22 12:33:16.021752
  DATE_ADD(NOW(6), INTERVAL 5 YEAR),          -- 2028-10-22 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 QUARTER),     -- 2025-01-22 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 MONTH),       -- 2024-03-22 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 WEEK),        -- 2023-11-25 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 DAY),       -- 2023-10-26 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 HOUR),        -- 2023-10-22 17:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 MINUTE),      -- 2023-10-22 12:38:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 SECOND),      -- 2023-10-22 12:33:21.021752
    DATE_ADD(NOW(6), INTERVAL 5 MICROSECOND),   -- 2023-10-22 12:33:16.021757
    DATE_ADD(NOW(6), INTERVAL 5 YEAR_MONTH),    -- 2024-03-22 12:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 DAY_HOUR),      -- 2023-10-22 17:33:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 DAY_MINUTE),    -- 2023-10-22 12:38:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 DAY_SECOND),    -- 2023-10-22 12:33:21.021752
    DATE_ADD(NOW(6), INTERVAL 5 DAY_MICROSECOND), -- 2023-10-22 12:33:16.521752
    DATE_ADD(NOW(6), INTERVAL 5 HOUR_MINUTE),   -- 2023-10-22 12:38:16.021752
    DATE_ADD(NOW(6), INTERVAL 5 HOUR_SECOND),   -- 2023-10-22 12:33:21.021752
    DATE_ADD(NOW(6), INTERVAL 5 HOUR_MICROSECOND),  -- 2023-10-22 12:33:16.521752
    DATE_ADD(NOW(6), INTERVAL 5 MINUTE_SECOND),   -- 2023-10-22 12:33:21.021752
    DATE_ADD(NOW(6), INTERVAL 5 MINUTE_MICROSECOND),-- 2023-10-22 12:33:16.521752
    DATE_ADD(NOW(6), INTERVAL 5 SECOND_MICROSECOND) -- 2023-10-22 12:33:16.521752

image.gif

  • date参数除了DATE()还可以用 SYSDATE()、LOCALTIME、LOCALTIME()、CURRENT_TIMSTAMPCURRENT_TIMSTAMP()

7.3 DATE_FORMAT() 函数

MySQL DATE_FORMAT() 函数按照指定的格式格式化日期时间。

语法:

DATE_FORMAT(date, format)

image.gif

参数说明:

  • date:必需的。需要格式化的日期
  • format:必需的。格式化模式字符串format 中可采用的格式化符号:
  • %a    星期的缩写 (Sun..Sat)
  • %b    月份的缩写 (Jan..Dec)
  • %c    月份数字 (0..12)
  • %D    带有英语前缀的月份中的每天 (0th, 1st, 2nd, 3rd, …)
  • %d    月份中的每天的两位数字表示 (00..31)
  • %e    月份中的每天的数字表示 (0..31)
  • %f    微秒 (000000..999999)
  • %H    小时 (00..23)
  • %h    小时 (01..12)
  • %I    小时 (01..12)
  • %i    分钟 (00..59)
  • %j    一年中的每天 (001..366)
  • %k    小时 (0..23)
  • %l    小时 (1..12)
  • %M    月份名称 (January..December)
  • %m    两位数字月份 (00..12)
  • %p    AM 或者 PM
  • %r    十二小时制时间 (hh:mm:ss 后跟 AM 或 PM)
  • %S    秒 (00..59)
  • %s    秒 (00..59)
  • %T    二十四小时制时间 (hh:mm:ss)
  • %U    一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
  • %u    一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
  • %V    一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
  • %v    一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
  • %W    星期的名称 (Sunday..Saturday)
  • %w    星期中的每天 (0=星期天..6=星期六)
  • %X    一年中的星期,每周的开始是星期天,四位数字,用于 %V
  • %x    一年中的星期,每周的开始是星期一,四位数字,用于 %v
  • %Y    四位数字年份
  • %y    两位数字年份
  • %%    转义 %
  • %x    x, 上面为列举的其他字符

返回值:

  • 按照指定的格式格式化日期时间并返回格式化后的字符串。
  • 返回 NULL情况:如果其中任何一个参数为 NULL。

示例:

SELECT
    DATE_FORMAT('2023-10-24', '%Y'),              -- 2023
    DATE_FORMAT('2023-10-24', '%W'),              -- Tuesday
    DATE_FORMAT('2023-02-01', '%M %d, %Y'),         -- February 01, 2022
    DATE_FORMAT('2023-02-01', '%M %e %Y'),          -- February 1 2023
    DATE_FORMAT('2023-02-28', '%W, %M %e, %Y'),     -- Tuesday, February 28, 2023
  DATE_FORMAT(NOW(), '%Y%m%d%H%i%S')              -- 20231022181622

image.gif

7.4 DATE_SUB() 函数

MySQL DATE_SUB() 函数在指定的日期/时间上减去指定到时间间隔加并返回新的日期/时间。

语法:

DATE_SUB(date, INTERVAL value unit)

image.gif

参数说明:

  • date:必需的。需要操作的日期。
  • days:必需的。在 date 上减去的天数。
  • value:必需的。时间/日期间隔。正数和负数都是允许的。
  • unit:必需的。时间/日期间隔的单位。时间/日期间隔的单位可以是以下值中的一个:
  • YEAR 年
  • QUARTER 季
  • MONTH 月
  • WEEK 周
  • DAY 日
  • HOUR 时
  • MINUTE 分
  • SECOND 秒
  • MICROSECOND 微秒
  • YEAR_MONTH
  • DAY_HOUR
  • DAY_MINUTE
  • DAY_SECOND
  • DAY_MICROSECOND
  • HOUR_MINUTE
  • HOUR_SECOND
  • HOUR_MICROSECOND
  • MINUTE_SECOND
  • MINUTE_MICROSECOND
  • SECOND_MICROSECOND

返回值:

  • 指定的日期/时间添加指定的时间间隔,并返回一个新的日期/时间。
  • 返回值和参数有关:
  • 返回 DATE:dateDATE 类型,且时间间隔为 YEAR, MONTH 或者 DAY。
  • 返回 TIME:dateTIME 且计算只涉及 HOURS, MINUTESSECONDS 部分。
  • 返回 DATETIME:
  • dateDATE 类型,并且时间间隔为 HOURS, MINUTES 或者 SECONDS。
  • dateDATETIME 类型。
  • dateTIME 类型,并且时间间隔为 YEAR, MONTH 或者 DAY
  • 其他情况下返回字符串。

示例:

SELECT
    DATE_SUB('2023-10-22', INTERVAL 10 DAY),          -- 2023-10-12
    DATE_SUB('2023-10-22', INTERVAL 10 HOUR),         -- 2023-10-21 14:00:00
    DATE_SUB('2023-10-22 14:00:00', INTERVAL 10 HOUR),  -- 2023-10-22 04:00:00
    DATE_SUB('2023-10-22 14:00:00', INTERVAL 10 MINUTE),-- 2023-10-22 13:50:00
    DATE_SUB(CURDATE(), INTERVAL 10 HOUR),              -- 2023-10-21 14:00:00
    DATE_SUB(NOW(), INTERVAL 10 MINUTE)                 -- 2023-10-22 14:18:03

image.gif

7.5 DATEDIFF() 函数

MySQL DATEDIFF() 函数返回两个日期值之间的天数。

语法:

DATEDIFF(date1, date2)

image.gif

参数说明:

  • date1:必需的。一个日期或者日期时间表达式
  • date2:必需的。一个日期或者日期时间表达式

返回值:

  • 返回两个日期值之间的天数。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    DATEDIFF('2023-10-22', '2023-10-28'),         -- 06
    DATEDIFF('2023-10-22', '2023-10-28 10:10:10'),  -- -6
    DATEDIFF('2023-10-22 10:10:10', '2023-10-28'),  -- -6
    DATEDIFF('2023-10-22', '2023-10-27'),         -- -5
    DATEDIFF('2023-10-22', '2023-10-27 10:10:10'),  -- -5
    DATEDIFF('2023-10-22 10:10:10', '2023-10-27'),  -- -5
    DATEDIFF('2023-10-22', '2023-10-28 10:10:10'),  -- -6
    DATEDIFF('Not A DATEDIFF', 'Not A DATEDIFF'), -- NULL
    DATEDIFF(NULL, '2023-10-22'),                 -- NULL
  DATEDIFF(NOW(), '2023-10-18')                 -- 4
    DATEDIFF(NOW(), '2023-10-20'),                  -- 2
    DATEDIFF(CURDATE(), '2023-10-20'),              -- 2
    DATEDIFF(CURRENT_DATE(), '2023-10-20'),         -- 2
    DATEDIFF(SYSDATE(), '2023-10-20')             -- 2

image.gif

7.6 ADDDATE() 函数

MySQL ADDDATE() 函数在指定的日期/时间上加上指定到时间间隔加并返回新的日期/时间。

语法:

ADDDATE(date, days)
ADDDATE(date, INTERVAL value unit)

image.gif

参数说明:

  • date:必需的。需要操作的日期。
  • days:必需的。在 date 上加上的天数。
  • value:必需的。时间/日期间隔。正数和负数都是允许的。
  • unit:必需的。时间/日期间隔的单位时间/日期间隔的单位可以是以下值中的一个:
  • YEAR 年
  • QUARTER 季
  • MONTH 月
  • WEEK 周
  • DAY 日
  • HOUR 时
  • MINUTE 分
  • SECOND 秒
  • MICROSECOND 微秒
  • YEAR_MONTH
  • DAY_HOUR
  • DAY_MINUTE
  • DAY_SECOND
  • DAY_MICROSECOND
  • HOUR_MINUTE
  • HOUR_SECOND
  • HOUR_MICROSECOND
  • MINUTE_SECOND
  • MINUTE_MICROSECOND
  • SECOND_MICROSECOND

返回值:

  • 返回 DATE情况:dateDATE 类型,且时间间隔为 YEAR, MONTH 或者 DAY。
  • 返回 TIME情况:dateTIME 类型,且计算只涉及 HOURS, MINUTESSECONDS 部分。
  • 返回 DATETIME情况:
  • date 参数是 DATE 类型,并且时间间隔为 HOURS, MINUTES 或者 SECONDS。
  • date 参数是 DATETIME 类型。
  • date 参数是 TIME 类型,并且时间间隔为 YEAR, MONTH 或者 DAY。
  • 其他情况下返回字符串。

示例:

SELECT
    ADDDATE('2023-10-22', 10),                      -- 2023-11-01
    ADDDATE('2023-10-22', -10),                     -- 2023-10-12
    ADDDATE('2023-10-22', INTERVAL 10 DAY),         -- 2023-11-01
    ADDDATE('2023-10-22', INTERVAL 10 HOUR),      -- 2023-10-22 10:00:00
    ADDDATE('2023-10-22 10:00:00', INTERVAL 10 HOUR), -- 2023-10-22 20:00:00
    ADDDATE('2023-10-22 10:00:00', INTERVAL 10 MINUTE), -- 2023-10-22 10:10:00
    ADDDATE(CURDATE(), INTERVAL 10 HOUR),         -- 2023-10-22 10:00:00
    ADDDATE(NOW(), INTERVAL 10 MINUTE)              -- 2023-10-22 15:58:07

image.gif

7.7 MAKEDATE() 函数

MySQL MAKEDATE() 函数根据年份和一年中天数创建一个日期并返回。

语法:

MAKEDATE(year, day_of_year)

image.gif

参数说明:

  • year:必需的。表示年份的 4 位数字。
  • day_of_year:必需的。一年中的第几天。应该大于 0。

返回值:

  • 根据年份和一年中天数创建一个日期并返回。
  • 返回 NULL情况:
  • day_of_year 等于或小于 0。

示例:

SELECT
    MAKEDATE(2023, 1),                              -- 2023-01-01
    MAKEDATE(2023, 31),                             -- 2023-01-31
    MAKEDATE(2023, 32),                             -- 2023-02-01
    MAKEDATE(2023, 0)                             -- NULL

image.gif

7.8 STR_TO_DATE() 函数

MySQL STR_TO_DATE() 函数将指定的字符串根据指定日期格式转为日期/时间。 STR_TO_DATE() 函数与 DATE_FORMAT() 函数是相反的。

语法:

STR_TO_DATE(str, format)

image.gif

参数说明:

  • str:必需的。需要格式化成日期的字符串。
  • format:必需的。格式化字符串。可采用的格式化符号:
  • %a:星期的缩写 (Sun..Sat)
  • %b:月份的缩写 (Jan..Dec)
  • %c:月份数字 (0..12)
  • %D:带有英语前缀的月份中的每天 (0th, 1st, 2nd, 3rd, …)
  • %d:月份中的每天的两位数字表示 (00..31)
  • %e:月份中的每天的数字表示 (0..31)
  • %f:微秒 (000000..999999)
  • %H:小时 (00..23)
  • %h:小时 (01..12)
  • %I:小时 (01..12)
  • %i:分钟 (00..59)
  • %j:一年中的每天 (001..366)
  • %k:小时 (0..23)
  • %l:小时 (1..12)
  • %M:月份名称 (January..December)
  • %m:两位数字月份 (00..12)
  • %p:AM 或者 PM
  • %r:十二小时制时间 ( hh:mm:ss 后跟 AM 或 PM)
  • %S:秒 (00..59)
  • %s:秒 (00..59)
  • %T:二十四小时制时间 (hh:mm:ss)
  • %U:一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
  • %u:一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
  • %V:一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
  • %v:一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
  • %W:星期的名称 (Sunday..Saturday)
  • %w:星期中的每天 (0=星期天..6=星期六)
  • %X:一年中的星期,每周的开始是星期天,四位数字,用于 %V
  • %x:一年中的星期,每周的开始是星期一,四位数字,用于 %v
  • %Y:四位数字年份
  • %y:两位数字年份
  • %%:转义 %
  • %x:x, 上面为列举的其他字符

返回值:

  • 返回一个日期/时间/日期时间。
  • 返回 NULL情况:
  • 如果不能按照 format 解析 str。
  • 如果其中任何一个参数为 NULL。

示例:

SELECT 
  STR_TO_DATE('2023/10/24', '%Y/%m/%d'),      -- 2023-10-24
  STR_TO_DATE('2023/10/24 10:10:10', '%Y/%m/%d %H:%i:%S'),  -- 2023-10-24 10:10:10
  STR_TO_DATE('2023/10/24 10:10:10', 'abc'),    -- NULL
  STR_TO_DATE('2023/10/24 10:10:10', NULL)    -- NULL

image.gif

7.9 SUBDATE() 函数

MySQL SUBDATE() 函数在指定的日期/时间上减去指定到时间间隔加并返回新的日期/时间。

语法:

SUBDATE(date, days)
SUBDATE(date, INTERVAL value unit)

image.gif

参数说明:

  • date:必需的。需要操作的日期。
  • days:必需的。在 date 上减去的天数。
  • value:必需的。时间/日期间隔。正数和负数都是允许的。
  • unit:必需的。时间/日期间隔的单位。时间/日期间隔的单位可以是以下值中的一个:
  • YEAR 年
  • QUARTER 季
  • MONTH 月
  • WEEK 周
  • DAY 日
  • HOUR 时
  • MINUTE 分
  • SECOND 秒
  • MICROSECOND 微秒
  • YEAR_MONTH
  • DAY_HOUR
  • DAY_MINUTE
  • DAY_SECOND
  • DAY_MICROSECOND
  • HOUR_MINUTE
  • HOUR_SECOND
  • HOUR_MICROSECOND
  • MINUTE_SECOND
  • MINUTE_MICROSECOND
  • SECOND_MICROSECOND

返回值:

  • 从指定的日期/时间减去指定的时间间隔,并返回一个新的日期/时间。
  • 返回 DATE情况:dateDATE 类型,且时间间隔为 YEAR, MONTH 或者 DAY。
  • 返回 TIME情况:dateTIME 类型,且计算只涉及 HOURS, MINUTESSECONDS 部分。
  • 返回 DATETIME情况:
  • dateDATE 类型,且时间间隔为 HOURS, MINUTES 或者 SECONDS。
  • 如果 dateDATETIME 类型。
  • dateTIME 类型,且时间间隔为 YEAR, MONTH 或者 DAY。
  • 其他情况下返回字符串。

示例:

SELECT
    SUBDATE('2023-10-24', 10),                      -- 2023-10-14
    SUBDATE('2023-10-24', -10),                     -- 2023-11-03
    SUBDATE('2023-10-24', INTERVAL 10 DAY),         -- 2023-10-14
    SUBDATE('2023-10-24', INTERVAL 10 HOUR),      -- 2023-10-23 14:00:00
    SUBDATE('2023-10-24 10:24:00', INTERVAL 10 HOUR), -- 2023-10-24 00:24:00
    SUBDATE('2023-10-24 10:24:00', INTERVAL 10 MINUTE), -- 2023-10-24 10:14:00
    SUBDATE(CURDATE(), INTERVAL 10 HOUR),         -- 2023-10-21 14:00:00
    SUBDATE(NOW(), INTERVAL 10 MINUTE)              -- 2023-10-22 09:29:34

image.gif

八、TIME相关函数

8.1 TIME() 函数

语法:

TIME(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回指定的时间或者日期时间中的时间部分。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的时间或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    TIME('11:11:11'),                 -- 11:11:11
    TIME('2023-02-28 11:11:11'),                    -- 11:11:11
    TIME('11:11:11.001112'),                        -- 11:11:11
    TIME('2023-02-28 11:11:11'),                    -- 11:11:11
    TIME(NOW()),                                  -- 18:19:05
    TIME('Not A Date'),                             -- 00:00:00
    TIME(NULL)                                      -- null

image.gif

8.2 TIME_FORMAT函数

MySQL TIME_FORMAT() 函数按照指定的格式格式化时间。

语法:

TIME_FORMAT(time, format)

image.gif

参数说明:

  • time:必需的。需要格式化的日期。
  • format:必需的。格式化模式字符串。可采用的格式化符号:
  • %f:微秒 (000000..999999)
  • %H:小时 (00..23)
  • %h:小时 (01..12)
  • %I:小时 (01..12)
  • %i:分钟 (00..59)
  • %k:小时 (0..23)
  • %l:小时 (1..12)
  • %p:AM 或者 PM
  • %r:十二小时制时间 (hh:mm:ss 后跟 AM 或 PM)
  • %S:秒 (00..59)
  • %s:秒 (00..59)
  • %T:二十四小时制时间 (hh:mm:ss)
  • %%:转义 %

返回值:

  • 按照指定的格式格式化时间并返回格式化后的字符串。
  • 返回 NULL情况:任何一个参数为 NULL。

示例:

SELECT
    TIME_FORMAT("14:30:10", "%H %i %s"),          -- 14 30 10
    TIME_FORMAT("14:30:10", "%h %i %s %p"),         -- 02 30 10 PM
    TIME_FORMAT("14:30:10", "%r"),                  -- 02:30:10 PM
    TIME_FORMAT("14:30:10", "%T"),                  -- 14:30:10
    TIME_FORMAT("14:30:10", "%H %i %s")             -- 14 30 10

image.gif

8.3 TIME_TO_SEC() 函数

MySQL TIME_TO_SEC() 函数将指定的时间值转为秒数。

语法:

TIME_TO_SEC(time)

image.gif

参数说明:

  • time:必需的。时间。格式:HH:MM:SS 或者 HH:MM 或者 SS。

返回值:

  • 将指定的时间值转为秒数。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    TIME_TO_SEC('14:14:10') `14:14:10`,             -- 51250
    TIME_TO_SEC('14:14') `14:14`,                   -- 51240
    TIME_TO_SEC('14') `14`;                         -- 14

image.gif

8.4 TIMEDIFF() 函数

MySQL TIMEDIFF() 函数返回两个时间之间的差值。

语法:

TIMEDIFF(time1, time2)

image.gif

参数说明:

  • time1:必需的。一个时间或者日期时间表达式。
  • time2:必需的。另一个时间或者日期时间表达式。

返回值:

  • 返回两个时间之间的差值,它返回一个 HH:MM:SS 格式的时间值。
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的时间或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    TIMEDIFF('14:14:14', '14:10:10'),                     -- 00:04:04
    TIMEDIFF('14:14:14', '10:10:10'),                     -- 04:04:04
  TIMEDIFF('2023-10-28 12:12:12', '2023-10-21 10:10:10'), -- 170:02:02
    TIMEDIFF(NOW(), '2023-10-28 10:10:10')                  -- -139:18:40

image.gif

8.5 TIMESTAMP() 函数

MySQL TIMESTAMP() 函数累加所有参数并将结果作为日期时间值返回。

语法:

TIMESTAMP(date_or_datetime)
TIMESTAMP(date_or_datetime, time)

image.gif

参数说明:

  • date_or_datetime:必需的。一个日期或者日期时间表达式。格式: YYYY-MM-DD 或者 YYYY-MM-DD HH:MM:SS。
  • time:可选的。一个时间值。格式:HH:MM:SS。

返回值:

  • date_or_datetime 作为日期时间值返回。
  • date_or_datetimetime 的和作为日期时间值返回。
  • 返回 NULL情况:任何一个参数为 NULL。

示例:

SELECT TIMESTAMP('2023-10-22'),                     -- 2023-10-22 00:00:00
  TIMESTAMP('2023-10-22', '10:10:10'),          -- 2023-10-22 10:10:10
  TIMESTAMP('2023-10-22 12:00:00', '12:00:00')  -- 2023-10-23 00:00:00

image.gif

8.6 TIMESTAMPADD() 函数

MySQL TIMESTAMPADD() 函数将指定的时间间隔加到一个日期时间值上并返回结果。

语法:

TIMESTAMPADD(unit, interval, datetime)

image.gif

参数说明:

  • unit:必需的。时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.
  • interval:可选的。一个表示时间间隔的整数值。
  • datetime:可选的。一个 datetime 值或表达式

返回值:

  • 将指定的时间间隔 interval 加到一个日期时间值上并返回结果。
  • 返回 NULL情况:任何一个参数为 NULL。

示例:

SELECT
    TIMESTAMPADD(WEEK, 1, '2023-10-22'),          -- 2023-10-29
    TIMESTAMPADD(DAY, 7, '2023-10-22'),             -- 2023-10-29
    TIMESTAMPADD(SECOND, 10, '2023-10-22');         -- 2023-10-22 00:00:10

image.gif

8.7 TIMESTAMPDIFF() 函数

MySQL TIMESTAMPDIFF() 函数返回两个日期时间之间的时间间隔。

语法:

TIMESTAMPDIFF(unit, datetime1, datetime2)

image.gif

参数说明:

  • unit:必需的。时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR。
  • datetime1:必需的。一个 datetime 值或表达式。
  • datetime2:必需的。一个 datetime 值或表达式。

返回值:

  • 返回两个日期/日期时间之间的时间间隔。
  • 返回 NULL情况:任何一个参数为 NULL。

示例:

SELECT
    TIMESTAMPDIFF(YEAR, '2022-1-28', '2023-10-22'),  -- 1
    TIMESTAMPDIFF(MONTH, '2022-02-28', '2023-10-22'),-- 19
    TIMESTAMPDIFF(MONTH, '2023-02-28', '2023-10-22') -- 7

image.gif

8.8 ADDTIME() 函数

MySQL ADDTIME() 函数在指定的时间上加上指定的时间间隔并返回结果。

语法:

ADDTIME(timeExpr1, timeExpr2)

image.gif

参数说明:

  • timeExpr1:必需的。它是一个 datetime 或者 time 表达式。
  • timeExpr2:必需的。它是个时间表达式。它可以是正数或者负数。

返回值:

  • timeExpr2 加到 timeExpr1 上,并返回结果。
  • 按如下规则确定返回值的类型:
  • timeExpr1 参数是动态类型,ADDTIME() 函数返回值类型为 TIME
  • 否则,ADDTIME() 函数返回的数据类型和第一个参数一样。

示例:

SELECT
    ADDTIME('2023-10-10 10:10:10', 10),             -- 2023-10-10 10:10:20
    ADDTIME('14:10:10', 10),                      -- 14:10:20
    ADDTIME('14:10:10', 100),                     -- 14:11:10
    ADDTIME('14:10:10', '100'),                     -- 14:11:10
    ADDTIME('14:10:10', '0:01:00'),                 -- 14:11:10
    ADDTIME('14:00:00', '01:10:10.000010'),         -- 15:10:10.000010
    ADDTIME('14:00:00', '-01:10:10.000010'),        -- 12:49:49.999990
    SUBTIME('14:00:00', '01:10:10.000010')          -- 12:49:49.999990

image.gif

8.9 LOCALTIME() 函数

MySQL LOCALTIME() 函数按 YYYY-MM-DD hh:mm:ss 格式返回当前时间和日期。

LOCALTIME() 函数与 NOW() 函数完全相同。

语法:

LOCALTIME
LOCALTIME()

image.gif

返回值:

  • 当前时间和日期。

示例:

SELECT 
    LOCALTIME,                                  -- 2023-10-22 08:20:38
    LOCALTIME + 1,                                  -- 20231022082039
    LOCALTIME(),                                -- 2023-10-22 08:20:38
    LOCALTIME() + 1;                              -- 20231022082039

image.gif

8.10 LOCALTIMESTAMP() 函数

MySQL LOCALTIMESTAMP() 函数按 YYYY-MM-DD hh:mm:ss 格式返回当前时间和日期。

LOCALTIMESTAMP() 函数与 NOW() 函数完全相同。

语法:

LOCALTIMESTAMP
LOCALTIMESTAMP()

image.gif

返回值:

  • 当前时间和日期。

示例:

SELECT
    LOCALTIMESTAMP,                             -- 2023-10-22 08:23:48
    LOCALTIMESTAMP + 1,                             -- 20231022082349
    LOCALTIMESTAMP(),                           -- 2023-10-22 08:23:48
    LOCALTIMESTAMP() + 1                          -- 20231022082349

image.gif

8.11 MAKETIME() 函数

MySQL MAKETIME() 函数指定的时、分、秒创建一个时间并返回。

语法:

MAKETIME(hour, minute, second)

image.gif

参数说明:

  • hour:必需的。小时。
  • minute:必需的。分钟,取值范围从 0 到 59。
  • second:必需的。秒,取值范围从 0 到 59。

返回值:

  • 指定的时、分、秒创建一个时间并返回。
  • 返回 NULL情况:
  • 如果 minute 不在 059 之间。
  • 如果 second 不在 059 之间
  • MySQL 支持的时间的范围是从 -838:59:59838:59:59

示例:

SELECT
    MAKETIME(10, 11, 12),                         -- 10:11:12
    MAKETIME(100, 11, 12),                          -- 100:11:12
    MAKETIME(839, 11, 12),                          -- 838:59:59
    MAKETIME(-999, 11, 12),                         -- -838:59:59
    MAKETIME(10, 11, 12),                         -- 10:11:12
    MAKETIME(10, 60, 12),                         -- NULL
    MAKETIME(10, 11, 75)                          -- NULL

image.gif

8.12 SEC_TO_TIME() 函数

MySQL SEC_TO_TIME() 函数将指定的秒数转为一个格式为 HH:MM:SS 的时间值。

语法:

SEC_TO_TIME(seconds)

image.gif

参数说明:

  • seconds:必需的。秒数。

返回值:

  • 返回一个格式为 HH:MM:SS 的时间值。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    SEC_TO_TIME(100),                             -- 00:01:40
    SEC_TO_TIME(3600),                              -- 01:00:00
    SEC_TO_TIME(-72000);                          -- -20:00:00

image.gif

8.13 SUBTIME() 函数

MySQL SUBTIME() 函数在指定的时间上减去指定的时间间隔并返回结果。

语法:

SUBTIME(timeExpr1, timeExpr2)

image.gif

参数说明:

  • timeExpr1:必需的。它是一个 datetime 或者 time 表达式。
  • timeExpr2:必需的。它是个时间表达式。它可以是正数或者负数。

返回值:

  • timeExpr1 中减去 timeExpr2,并返回结果。
  • 按如下规则确定返回值的类型:
  • timeExpr1 参数是动态类型,SUBTIME() 函数返回值类型为 TIME
  • 否则,SUBTIME() 函数返回的数据类型和第一个参数一样。

示例:

SELECT
    SUBTIME('2023-12-24 10:10:24', 10),             -- 2023-12-24 10:10:14
    SUBTIME('10:10:24', 10),                      -- 10:10:14
    SUBTIME('10:10:24', 100),                     -- 10:09:24
    SUBTIME('10:10:24', '100'),                     -- 10:09:24
    SUBTIME('10:10:24', '0:01:00'),                 -- 10:09:24
    SUBTIME('10:00:24', '01:10:10.000010'),         -- 08:50:13.999990
    SUBTIME('10:00:24', '-01:10:10.000010'),      -- 11:10:34.000010
    ADDTIME('10:00:24', '01:10:10.000010')          -- 11:10:34.000010

image.gif

8.14 UNIX_TIMESTAMP() 函数

MySQL UNIX_TIMESTAMP() 函数将指定的日期/日期时间转为 UNIX 时间戳值。 UNIX 时间戳值是距离 UTC 时间 1970-01-01 00:00:00 的秒数。

语法:

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date_or_datetime)

image.gif

参数说明:

  • date_or_datetime:可选的。默认值为 NOW()

返回值:

  • 将指定的日期/日期时间转为距离 UTC 时间 1970-01-01 00:00:00 的秒数。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    UNIX_TIMESTAMP(),                         -- 1697968385
    UNIX_TIMESTAMP(NOW()),                          -- 1697968385
    UNIX_TIMESTAMP(NULL)                            -- NULL

image.gif

九、CUR相关函数

9.1 CURDATE() 函数

MySQL CURDATE() 函数按 YYYY-MM-DD 或 YYYYMMDD 格式返回系统的当前日期。

CURDATE() 函数与 CURRENT_DATE() 函数完全相同。

语法:

CURDATE()

image.gif

返回值:

  • 当前日期。

示例:

SELECT
    CURDATE(),                                      -- 2023-10-22
    CURDATE() + 0,                                  -- 20231022
    CURDATE() + 1;                                  -- 20231023

image.gif

  • + N 表示把日期转为 yyyyMMdd 格式 + N。

9.2 CURRENT_DATE() 函数

MySQL CURRENT_DATE() 函数按 YYYY-MM-DD 或 YYYYMMDD 格式返回系统的当前日期。

CURDATE() 函数与 CURRENT_DATE() 函数完全相同。

语法:

CURRENT_DATE
CURRENT_DATE()

image.gif

返回值:

  • 当前日期。

示例:

SELECT
    CURRENT_DATE,                               -- 2023-10-22
    CURRENT_DATE + 1,                             -- 20231023
    CURRENT_DATE(),                                 -- 2023-10-22
    CURRENT_DATE() + 0,                             -- 20231022
    CURRENT_DATE() + 1;                             -- 20231023

image.gif

  • + N 表示把日期转为 yyyyMMdd 格式 + N。

9.3 CURRENT_TIME() 函数

MySQL CURRENT_TIME() 函数按 hh:mm:ss 格式返回系统的当前时间。

CURRENT_TIME() 函数与 CURTIME() 函数完全相同。

语法:

CURRENT_TIME
CURRENT_TIME()

image.gif

返回值:

  • 当前时间。

示例:

SELECT 
    CURRENT_TIME,                               -- 15:28:58
    CURRENT_TIME + 1,                             -- 152859
    CURRENT_TIME(),                                 -- 15:28:58
    CURRENT_TIME() + 0,                             -- 152858
    CURRENT_TIME() + 1                              -- 152859

image.gif

  • + N 表示把时间转为 hhmmss 格式 + N。

9.4 CURRENT_TIMESTAMP() 函数

MySQL CURRENT_TIMESTAMP() 函数按 YYYY-MM-DD hh:mm:ss 格式返回当前时间和日期。

CURRENT_TIMESTAMP() 函数与 NOW() 函数完全相同。

语法:

CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()

image.gif

返回值:

  • 当前时间和日。

示例:

SELECT 
  CURRENT_TIMESTAMP,                        -- 2023-10-22 15:32:40
  CURRENT_TIMESTAMP + 1,                        -- 20231022153241
  CURRENT_TIMESTAMP(),                      -- 2023-10-22 15:32:40
  CURRENT_TIMESTAMP() + 0,                      -- 20231022153240
  CURRENT_TIMESTAMP() + 1;                      -- 20231022153241

image.gif

  • + N 表示把日期时间转为 yyyyMMddhhmmss 格式 + N。

9.5 CURTIME() 函数

MySQL CURTIME() 函数按 hh:mm:ss 格式返回系统的当前时间。

CURTIME() 函数与 CURRENT_TIME() 函数完全相同。

语法:

CURTIME()

image.gif

返回值:

  • 当前时间。

示例:

SELECT
  CURTIME(),                                  -- 15:39:13
  CURTIME() + 0,                                  -- 153913
  CURTIME() + 1                                 -- 153914

image.gif

  • + N 表示把日期时间转为 hhmmss 格式 + N。

十、其它日期时间函数

10.1 MICROSECOND() 函数

MySQL MICROSECOND() 函数提取时间或日期时间中的微秒部分部分并作为数字返回。

语法:

MICROSECOND(time)

image.gif

参数说明:

  • time:必需的。一个日期或者日期时间表达式。

返回值:

  • 提取时间或日期时间中的微秒部分部分并作为数字返回。
  • 值是介于 0999999 之间的数字。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    MICROSECOND('10:11:12.000334'),           -- 334
    MICROSECOND('2023-10-24 10:11:12.000334'),      -- 334
    MICROSECOND('2023-10-24')                 -- 0

image.gif

10.2 SECOND() 函数

MySQL SECOND() 函数提取并返回时间的秒部分。

语法:

SECOND(time)

image.gif

参数说明:

  • time:必需的。一个时间或者日期时间表达式。

返回值:

  • 返回时间的秒部分,SECOND() 函数的返回值介于 059 之间。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    SECOND('10:11:12'),                             -- 12
    SECOND('2023-10-24 10:11:12')                 -- 12

image.gif

10.3 MINUTE() 函数

MySQL MINUTE() 函数提取并返回时间的分钟部分。

语法:

MINUTE(time)

image.gif

参数说明:

  • time:必需的。一个时间或者日期时间表达式。

返回值:

  • 返回值介于 059 之间。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    MINUTE('14:11:12'),                              -- 11
    MINUTE('2023-10-24 14:11:12')                  -- 11

image.gif

10.4 HOUR() 函数

MySQL HOUR() 函数提取并返回时间的小时部分。

语法:

HOUR(time)

image.gif

参数说明:

  • time:必需的。一个时间或者日期时间表达式。

返回值:

  • 指定的时间或者日期时间中的小时部分并作为数字返回。
  • MySQL 支持的最大时间为 838:59:59HOUR() 函数的最大返回值是 838。
  • 返回 0:如果 time 中没有小时部分。
  • 返回 NULL:参数为 NULL。

示例:

SELECT
    HOUR('10:10:10'),                 -- 10
    HOUR('2023-10-24 10:10:10'),                  -- 10
    HOUR('123:10:10'),                    -- 123
    HOUR('1234:10:10'),                   -- 838 MySQL 支持的最大时间是 838:59:59
    HOUR('2023-10-24'),                   -- 0 不正确的时间格式
    HOUR('2023-10-31'),                   -- 0 不正确的时间格式
    HOUR('Not A DATE'),                   -- 0 不正确的时间格式
    HOUR(NULL)                    -- NULL

image.gif

10.5 DAY() 函数

MySQL DAY() 函数返回日期时间表达式中的代表月份中的一天的数字。此函数等同于 DAYOFMONTH() 函数。

语法:

DAY(expr)

image.gif

参数说明:

  • expr:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回日期时间表达式中的代表月份中的一天的数字,从 1 到 31。
  • 返回 NULL情况:
  • 如果指定的表达式不是一个合法的日期或者日期时间。
  • 如果参数为 NULL

示例:

SELECT
    DAY('2023-10-21'),                      -- 21
    DAY('2023-10-21 09:10:10'),                     -- 21
    DAY(NOW()),                           -- 21
    DAY('2023-02-00'),                      -- 0
    DAY('2023-02-30'),                      -- NULL
    DAY('Not A DATE'),                      -- NULL
    DAY(NULL)                         -- NULL

image.gif

10.6 MONTH() 函数

MySQL MONTH() 函数提取日期的月份部分并作为数字返回。

语法:

MONTH(date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回值介于 112 之间。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    MONTH('2023-10-24'),                      -- 10
    MONTH('2023-10-24 14:11:12')                  -- 10

image.gif

10.7 QUARTER() 函数

MySQL QUARTER() 函数返回一个指定日期所在季度值。

语法:

QUARTER(date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回一个指定日期所在季度值。返回值介于 14 之间:
  • 1: 第一季度,即 1 月到 3 月。
  • 2: 第二季度,即 4 月到 6 月。
  • 3: 第三季度,即 7 月到 9 月。
  • 4: 第四季度,即 10 月到 12 月。
  • 返回 NULL:参数为 NULL。

示例:

SELECT
    QUARTER('2023-10-24'),                      -- 4
    QUARTER('2023-10-24 10:11:12')                  -- 4

image.gif

10.8 YEAR() 函数

MySQL YEAR() 函数提取日期的年份部分并作为数字返回。

语法:

YEAR(date)

image.gif

参数说明:

  • time:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回作为日期的年份部分的数字。返回值是 0 或者介于 10009999 之间的数字。
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    YEAR('2023-10-24'),                         -- 2023
    YEAR('2023-10-24 10:11:12'),                -- 2023
    YEAR('0000-01-01'),                           -- 0
  YEAR('abc')                                     -- NULL

image.gif

10.9 TO_SECONDS() 函数

MySQL TO_SECONDS() 函数将指定的日期/日期时间转为距离 0 年的秒数并返回结果。

语法:

TO_SECONDS(date_or_datetime)

image.gif

参数说明:

  • date_or_datetime:必需的。一个表示天数的整数值。

返回值:

  • 返回指定的日期/日期时间从 0 年开始的秒数。
  • 返回 NULL情况:
  • 参数为 NULL。

示例:

SELECT
    TO_SECONDS('2023-10-24'),                 -- 63865324800
    TO_SECONDS('2023-10-24 10:10:14')             -- 63865361414

image.gif

10.10 MONTHNAME() 函数

MySQL MONTHNAME() 函数返回给定日期的月份的名字。

语法:

MONTHNAME(date)

image.gif

参数说明:

  • date:必需的。一个日期或者日期时间表达式。

返回值:

  • 返回给定日期的月份的名字。返回值以下值中的一个:
  • January。
  • February。
  • March。
  • April。
  • May。
  • June。
  • July。
  • August。
  • September。
  • October。
  • November。
  • December
  • 返回 NULL情况:
  • 指定的表达式不是一个合法的日期或者日期时间。
  • 参数为 NULL。

示例:

SELECT
    MONTHNAME('2023-10-01'),                      -- October
    MONTHNAME('2023-11-01'),                      -- November
    MONTHNAME('2023-12-01'),                      -- December
    MONTHNAME('2024-01-01'),                      -- January
    MONTHNAME('2024-02-01'),                      -- February
    MONTHNAME('2024-03-01'),                      -- March
    MONTHNAME('2024-04-01'),                      -- April
    MONTHNAME('2024-05-01'),                      -- May
    MONTHNAME('2024-06-01'),                      -- June
    MONTHNAME('2024-07-01'),                      -- July
    MONTHNAME('2024-08-01'),                      -- August
    MONTHNAME('2024-09-01'),                      -- September
    MONTHNAME('Not A DATE'),                      -- NULL
    MONTHNAME(NULL)                                 -- NULL

image.gif

10.11 PERIOD_ADD() 函数

MySQL PERIOD_ADD() 函数在指定年月上加上指定的月数将结果作为年月返回。

语法:

PERIOD_ADD(period, month_number)

image.gif

参数说明:

  • period:必需的。使用 YYYYMM 或 YYMM 格式表示的时期。
  • month_number:必需的。需要加到 period 上的月数

返回值:

  • 指定年月上加上指定的月数将结果作为年月。(格式是 YYYYMM)
  • 返回 NULL情况:参数为 NULL。

示例:

SELECT
    PERIOD_ADD(202301, 1),                          -- 202302
    PERIOD_ADD(202301, 2),                          -- 202303
    PERIOD_ADD(202301, 3),                          -- 202304
    PERIOD_ADD(202301, 4),                          -- 202305
    PERIOD_ADD(202301, 5),                          -- 202306
    PERIOD_ADD(202301, 6),                          -- 202307
    PERIOD_ADD(202301, 7),                          -- 202308
    PERIOD_ADD(202301, 8),                          -- 202309
    PERIOD_ADD(202301, 9),                          -- 202310
    PERIOD_ADD(202301, 10),                         -- 202311
    PERIOD_ADD(202301, 11),                         -- 202312
    PERIOD_ADD(202301, 12)                          -- 202401

image.gif

10.12 PERIOD_DIFF() 函数

MySQL PERIOD_DIFF() 函数返回两个通过年月指定的时期之间相差的月数。

语法:

PERIOD_DIFF(period1, period2)

image.gif

参数说明:

  • period1:必需的。格式: YYYYMM 或 YYMM。
  • period2:必需的。格式: YYYYMM 或 YYMM。

返回值:

  • 返回两个通过年月指定的时期之间相差的月数。

示例:

SELECT
    PERIOD_DIFF(202302, 202301),  -- 1
    PERIOD_DIFF(202303, 202301),  -- 2
    PERIOD_DIFF(202304, 202301),  -- 3
    PERIOD_DIFF(202305, 202301),  -- 4
    PERIOD_DIFF(202306, 202301),  -- 5
    PERIOD_DIFF(202307, 202301),  -- 6
    PERIOD_DIFF(202308, 202301),  -- 7
    PERIOD_DIFF(202309, 202301),  -- 8
    PERIOD_DIFF(202310, 202301),  -- 9
    PERIOD_DIFF(202311, 202301),  -- 10
    PERIOD_DIFF(202312, 202301),  -- 11
    PERIOD_DIFF(202301, 202301) -- 0

image.gif

10.13 CONVERT_TZ() 函数

MySQL CONVERT_TZ() 函数将一个时区的时间转为另一个时区的时间并返回。

语法:

CONVERT_TZ(datetime, fromTimeZone, toTimeZone)

image.gif

参数说明:

  • datetime:必需的。需要处理的日期时间。
  • fromTimeZone:必需的。当前时区的标识。
  • toTimeZone:必需的。新的时区的标识。
  • fromTimeZone 和 toTimeZone 支持的格式包括:
  • 使用 SYSTEM 意味着和当前系统的时区一样。
  • 使用 +/-[H]H:MM 是和 UTC 时间的偏移量,如 '+10:00','-6:00','+05:00'等。
  • 使用时区的名称,比如:'Europe/Helsinki', 'US/Eastern', 'MET', 'GMT'

返回值:

  • 返回新时区的日期时间。
  • 参数错误或者为 NULLCONVERT_TZ() 函数将返回 NULL

示例:

SELECT
CONVERT_TZ('2023-10-22 14:00:00', 'GMT', 'MET'),  -- 2023-10-22 16:00:00
CONVERT_TZ('2023-10-22 14:00:00', 'GMT', '+01:00'), -- 2023-10-22 15:00:00
CONVERT_TZ('2023-10-22 14:00:00', 'GMT', '-01:00'), -- 2023-10-22 13:00:00
CONVERT_TZ('2023-10-22 14:00:00', 'GMT', '-03:00')  -- 2023-10-22 11:00:00

image.gif

12.14 UTC函数

UTC函数有:

  • UTC_DATE、UTC_DATE() 函数:与DATE函数相似(UTC_DATE少8个小时)详见 7.1
  • UTC_TIME、UTC_TIME() 函数:与TIME函数相似(UTC_DATE少8个小时)详见 8.1
  • UTC_TIMESTAMP、UTC_TIMESTAMP() 函数:与TIMESTAMP函数相似(UTC_DATE少8个小时)详见 8.5
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
关系型数据库 MySQL 数据挖掘
轻松入门MySQL:利用MySQL时间函数优化产品销售数据统计与分析(9)
轻松入门MySQL:利用MySQL时间函数优化产品销售数据统计与分析(9)
161 0
|
16天前
|
关系型数据库 MySQL
Mysql 中日期比较大小的方法有哪些?
在 MySQL 中,可以通过多种方法比较日期的大小,包括使用比较运算符、NOW() 函数、DATEDIFF 函数和 DATE 函数。这些方法可以帮助你筛选出特定日期范围内的记录,确保日期格式一致以避免错误。
|
30天前
|
存储 自然语言处理 关系型数据库
mysql 8.0 日期维度表生成(可运行)
mysql 8.0 日期维度表生成(可运行)
43 2
|
17天前
|
SQL NoSQL 关系型数据库
|
1月前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
41 0
|
6月前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
5月前
|
关系型数据库 MySQL 数据库
mysql之日期时间函数
SELECT SECOND('12:45:31'); -- 结果: 31 请注意,以上结果取决于实际查询执行的时间和日期。在实际的数据库操作中,通常会使用列名作为参数,而不是直接使用硬编码的日期或时间值。例如: SELECT YEAR(birthdate) FROM employees; 这将返回 employees 表中每位员工的 birthdate 列的年份。日期和时间函数在处理数据时非常有用,特别是当你需要对日期和时间进行操作或计算时。 ————————————————
42 0
|
5月前
|
存储 关系型数据库 MySQL
MySQL 日期表制作
MySQL 日期表制作
56 0
|
6月前
|
存储 关系型数据库 MySQL
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
197 1
|
6月前
|
关系型数据库 MySQL Java
mysql数据库处理TIMESTAMP格式日期
该内容提到了关于MySQL数据库处理TIMESTAMP格式日期的解决方案。首先,引用了两篇CSDN博客文章,一篇是关于使用MyBatis在MySQL中添加或修改TIMESTAMP日期的,另一篇是关于将Oracle的TIMESTAMP字段通过MyBatis插入到数据库的。接着,提到一个错误信息,说明MySQL表中不能有多个TIMESTAMP列。然后,展示了如何设置数据库字段(ctime和mtime)自动记录创建和更新时间,并提供了对应的mapper文件和Java字段定义,以实现业务代码中无需手动设置这些时间戳。
103 2