轻松驾驭时间流:MYSQL日期与时间函数的实用技巧

​🌈 个人主页:danci_
🔥 系列专栏:《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)

参数说明:

  • 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 |
+---------------------+-----------------------+--------------------+-----------------------+

说明:

  • 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              |
+---------------------+-----------------------+
  • 无参

说明:

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

三、获取当前时间

语法:

CURTIME(M)

参数说明:

  • 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   |
+---------------------+-----------------------+------------------+

说明:

  • 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)

参数说明:

  • 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);     -- 304775SELECT 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

五、WEEK相关函数

5.1 WEEK() 函数

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

语法:

WEEK(date)
WEEK(date, mode)

参数说明:

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

返回值:

  • 返回给定日期位于当年的第几周,取值范围为 0 到 53
  • 返回 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	

示例:

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

5.2 WEEKDAY() 函数

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

语法:

WEEKDAY(date)

参数说明:

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

返回值:

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

示例:

SELECTWEEKDAY('2023-10-21'),                          -- 5WEEKDAY('2023-10-22'),                          -- 6WEEKDAY('2023-10-23'),                          -- 0WEEKDAY('2023-10-24'),                          -- 1WEEKDAY('2023-10-25'),                          -- 2WEEKDAY('2023-10-26'),                          -- 3WEEKDAY('2023-10-27')                           -- 4
  • 如果想返回今天的工作日名称,参数用 NOW()、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

5.3 WEEKOFYEAR() 函数

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

语法:

WEEKOFYEAR(date)

参数说明:

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

返回值:

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

示例:

SELECT WEEKOFYEAR('2023-01-01'),                     -- 52(2023年第一周只有2天)WEEKOFYEAR('2023-01-02'),                        -- 1WEEKOFYEAR('2023-01-03'),	                     -- 1WEEKOFYEAR('2024-01-01'),                        -- 1 (2024年第一周大于3天)WEEKOFYEAR('2024-01-02'),                        -- 1WEEKOFYEAR('2024-01-03');                        -- 1
  •  如果没有指定 mode 参数,WEEK() 默认将使用 default_week_format 变量的值。
  • 我们可以通过以下语句查看 default_week_format 变量的值。
    • mysql> SHOW VARIABLES LIKE 'default_week_format';;
      +---------------------+-----------------+
      | Variable               | Value        |
      +---------------------+-----------------+
      | default_week_format    | 0            |
      +---------------------+-----------------+

5.4 YEARWEEK() 函数

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

语法:

YEARWEEK(date)
YEARWEEK(date, mode)

参数说明:

  • 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	

示例:

SELECTYEARWEEK('2023-01-01'),		                    -- 202301YEARWEEK('2023-01-01', 0),	                    -- 202301YEARWEEK('2023-01-03', 0),	                    -- 202301YEARWEEK('2023-01-01', 1),	                    -- 202252YEARWEEK('2023-01-03', 1),	                    -- 202301YEARWEEK('2023-01-01', 2),	                    -- 202301YEARWEEK('2023-01-03', 2),	                    -- 202301YEARWEEK('2023-01-01', 3),	                    -- 202252YEARWEEK('2023-01-03', 3),	                    -- 202301YEARWEEK('2023-01-01', 4),	                    -- 202301YEARWEEK('2023-01-03', 4),	                    -- 202301YEARWEEK('2023-01-01', 5),	                    -- 202252YEARWEEK('2023-01-03', 5),	                    -- 202301YEARWEEK('2023-01-01', 6),	                    -- 202301YEARWEEK('2023-01-03', 6),	                    -- 202301YEARWEEK('2023-01-01', 7),	                    -- 202352YEARWEEK('2023-01-03', 7)	                    -- 202301
  •  如果没有指定 mode 参数,WEEK() 默认将使用 default_week_format 变量的值。
  • 我们可以通过以下语句查看 default_week_format 变量的值。
    • mysql> SHOW VARIABLES LIKE 'default_week_format';;
      +---------------------+-----------------+
      | Variable               | Value        |
      +---------------------+-----------------+
      | default_week_format    | 0            |
      +---------------------+-----------------+

六、DAY相关函数

6.1 DAY() 函数

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

语法:

DAY(expr)

参数说明:

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

返回值:

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

示例:

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

6.2 DAYNAME() 函数

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

语法:

DAYNAME(expr)

参数说明:

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

返回值:

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

示例:

SELECTDAYNAME('2023-10-22'),	                        -- SundayDAYNAME('2023-10-23'),	                        -- MondayDAYNAME('2023-10-24'),	                        -- TuesdayDAYNAME('2023-10-25'),	                        -- WednesdayDAYNAME('2023-10-26'),	                        -- ThursdayDAYNAME('2023-10-27'),	                        -- FridayDAYNAME('2023-10-28'),	                        -- SaturdayDAYNAME(NOW()),	                                -- SundayDAYNAME('2023-02-00'),	                        -- NULLDAYNAME('2023-02-30'),	                        -- NULLDAYNAME('Not A DATE'),	                        -- NULLDAYNAME(NULL)	                                -- NULL
  • 如果想返回今天的工作日名称,参数用 NOW(),、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

6.3 DAYOFMONTH() 函数

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

语法:

DAYOFMONTH(expr)

参数说明:

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

返回值:

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

示例:

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

6.4 DAYOFWEEK() 函数

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

语法:

DAYOFWEEK(expr)

参数说明:

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

返回值:

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

示例:

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

6.5 DAYOFYEAR() 函数

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

语法:

DAYOFYEAR(expr)

参数说明:

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

返回值:

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

示例:

SELECTDAYOFYEAR('2023-10-21'),	                    -- 294DAYOFYEAR('2023-10-22'),	                    -- 295DAYOFYEAR(NOW()),	                            -- 294DAYOFWEEK('2023-02-00'),	                    -- NULLDAYOFWEEK('2023-02-30'),	                    -- NULLDAYOFWEEK('Not A DATE'),	                    -- NULLDAYOFWEEK(NULL)	                                -- NULL
  • 如果想返回今天的工作日名称,参数用 NOW(),、CURDATE(),、CURRENT_DATE() 或 SYSDATE()

6.6 FROM_DAYS() 函数

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

语法:

FROM_DAYS(days)

参数说明:

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

返回值:

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

示例:

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

6.7 TO_DAYS() 函数

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

语法:

TO_DAYS(date)

参数说明:

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

返回值:

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

示例:

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

6.8 LAST_DAY() 函数

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

语法:

LAST_DAY(date)

参数说明:

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

返回值:

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

示例:

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

七、DATE相关函数

7.1 DATE() 函数

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

语法:

DATE(expr)

参数说明:

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

返回值:

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

示例:

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

7.2 DATE_ADD() 函数

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

语法:

DATE_ADD(date, INTERVAL value unit)

参数说明:

  • 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 类型,并且时间间隔为 YEARMONTH 或者 DAY
    • 返回 DATETIME:
      • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS
      • 如果 date 参数是 DATETIME 类型。
      • 如果 date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY。
    • 返回 TIME:返回 TIME。
  • 其它情况返回字符串。

示例:

SELECTNOW(6), 										-- 2023-10-22 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 YEAR),			    -- 2028-10-22 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 QUARTER),			-- 2025-01-22 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 MONTH),				-- 2024-03-22 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 WEEK),				-- 2023-11-25 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 DAY),				-- 2023-10-26 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 HOUR),				-- 2023-10-22 17:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 MINUTE),			-- 2023-10-22 12:38:16.021752DATE_ADD(NOW(6), INTERVAL 5 SECOND),			-- 2023-10-22 12:33:21.021752DATE_ADD(NOW(6), INTERVAL 5 MICROSECOND),		-- 2023-10-22 12:33:16.021757DATE_ADD(NOW(6), INTERVAL 5 YEAR_MONTH),		-- 2024-03-22 12:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 DAY_HOUR),			-- 2023-10-22 17:33:16.021752DATE_ADD(NOW(6), INTERVAL 5 DAY_MINUTE),		-- 2023-10-22 12:38:16.021752DATE_ADD(NOW(6), INTERVAL 5 DAY_SECOND),		-- 2023-10-22 12:33:21.021752DATE_ADD(NOW(6), INTERVAL 5 DAY_MICROSECOND),	-- 2023-10-22 12:33:16.521752DATE_ADD(NOW(6), INTERVAL 5 HOUR_MINUTE),		-- 2023-10-22 12:38:16.021752DATE_ADD(NOW(6), INTERVAL 5 HOUR_SECOND),		-- 2023-10-22 12:33:21.021752DATE_ADD(NOW(6), INTERVAL 5 HOUR_MICROSECOND),	-- 2023-10-22 12:33:16.521752DATE_ADD(NOW(6), INTERVAL 5 MINUTE_SECOND),		-- 2023-10-22 12:33:21.021752DATE_ADD(NOW(6), INTERVAL 5 MINUTE_MICROSECOND),-- 2023-10-22 12:33:16.521752DATE_ADD(NOW(6), INTERVAL 5 SECOND_MICROSECOND)	-- 2023-10-22 12:33:16.521752
  • date参数除了DATE()还可以用 SYSDATE()、LOCALTIME、LOCALTIME()、CURRENT_TIMSTAMP 和 CURRENT_TIMSTAMP()

7.3 DATE_FORMAT() 函数

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

语法:

DATE_FORMAT(date, format)

参数说明:

  • 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。

示例:

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

7.4 DATE_SUB() 函数

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

语法:

DATE_SUB(date, INTERVAL value unit)

参数说明:

  • 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:date 是 DATE 类型,且时间间隔为 YEARMONTH 或者 DAY。
    • 返回 TIME:date 是 TIME 且计算只涉及 HOURSMINUTES 和 SECONDS 部分。
    • 返回 DATETIME:
      • date 是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS。
      • date 是 DATETIME 类型。
      • date 是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY
  • 其他情况下返回字符串。

示例:

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

7.5 DATEDIFF() 函数

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

语法:

DATEDIFF(date1, date2)

参数说明:

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

返回值:

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

示例:

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

7.6 ADDDATE() 函数

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

语法:

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

参数说明:

  • 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情况:date 是 DATE 类型,且时间间隔为 YEARMONTH 或者 DAY。
  • 返回 TIME情况:date 是 TIME 类型,且计算只涉及 HOURSMINUTES 和 SECONDS 部分。
  • 返回 DATETIME情况:
    • date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS。
    • date 参数是 DATETIME 类型。
    • date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY。
  • 其他情况下返回字符串。

示例:

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

7.7 MAKEDATE() 函数

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

语法:

MAKEDATE(year, day_of_year)

参数说明:

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

返回值:

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

示例:

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

7.8 STR_TO_DATE() 函数

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

语法:

STR_TO_DATE(str, format)

参数说明:

  • 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-24STR_TO_DATE('2023/10/24 10:10:10', '%Y/%m/%d %H:%i:%S'),	-- 2023-10-24 10:10:10STR_TO_DATE('2023/10/24 10:10:10', 'abc'),		-- NULLSTR_TO_DATE('2023/10/24 10:10:10', NULL)		-- NULL

7.9 SUBDATE() 函数

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

语法:

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

参数说明:

  • 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情况:date 是 DATE 类型,且时间间隔为 YEARMONTH 或者 DAY。
  • 返回 TIME情况:date 是 TIME 类型,且计算只涉及 HOURSMINUTES 和 SECONDS 部分。
  • 返回 DATETIME情况:
    • date 是 DATE 类型,且时间间隔为 HOURSMINUTES 或者 SECONDS。
    • 如果 date 是 DATETIME 类型。
    • date 是 TIME 类型,且时间间隔为 YEARMONTH 或者 DAY。
  • 其他情况下返回字符串。

示例:

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

八、TIME相关函数

8.1 TIME() 函数

语法:

TIME(expr)

参数说明:

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

返回值:

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

示例:

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

8.2 TIME_FORMAT函数

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

语法:

TIME_FORMAT(time, format)

参数说明:

  • 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。

示例:

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

8.3 TIME_TO_SEC() 函数

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

语法:

TIME_TO_SEC(time)

参数说明:

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

返回值:

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

示例:

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

8.4 TIMEDIFF() 函数

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

语法:

TIMEDIFF(time1, time2)

参数说明:

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

返回值:

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

示例:

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

8.5 TIMESTAMP() 函数

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

语法:

TIMESTAMP(date_or_datetime)
TIMESTAMP(date_or_datetime, time)

参数说明:

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

返回值:

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

示例:

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

8.6 TIMESTAMPADD() 函数

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

语法:

TIMESTAMPADD(unit, interval, datetime)

参数说明:

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

返回值:

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

示例:

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

8.7 TIMESTAMPDIFF() 函数

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

语法:

TIMESTAMPDIFF(unit, datetime1, datetime2)

参数说明:

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

返回值:

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

示例:

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

8.8 ADDTIME() 函数

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

语法:

ADDTIME(timeExpr1, timeExpr2)

参数说明:

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

返回值:

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

示例:

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

8.9 LOCALTIME() 函数

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

语法:

LOCALTIME
LOCALTIME()

返回值:

  • 当前时间和日期。

示例:

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

8.10 LOCALTIMESTAMP() 函数

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

语法:

LOCALTIMESTAMP
LOCALTIMESTAMP()

返回值:

  • 当前时间和日期。

示例:

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

8.11 MAKETIME() 函数

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

语法:

MAKETIME(hour, minute, second)

参数说明:

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

返回值:

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

示例:

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

8.12 SEC_TO_TIME() 函数

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

语法:

SEC_TO_TIME(seconds)

参数说明:

  • seconds:必需的。秒数。

返回值:

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

示例:

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

8.13 SUBTIME() 函数

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

语法:

SUBTIME(timeExpr1, timeExpr2)

参数说明:

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

返回值:

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

示例:

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

8.14 UNIX_TIMESTAMP() 函数

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

语法:

UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date_or_datetime)

参数说明:

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

返回值:

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

示例:

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

九、CUR相关函数

9.1 CURDATE() 函数

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

语法:

CURDATE()

返回值:

  • 当前日期。

示例:

SELECTCURDATE(),	                                    -- 2023-10-22CURDATE() + 0,	                                -- 20231022CURDATE() + 1;	                                -- 20231023
  • + N 表示把日期转为 yyyyMMdd 格式 + N。

9.2 CURRENT_DATE() 函数

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

语法:

CURRENT_DATE
CURRENT_DATE()

返回值:

  • 当前日期。

示例:

SELECTCURRENT_DATE,		                            -- 2023-10-22CURRENT_DATE + 1,	                            -- 20231023CURRENT_DATE(),	                                -- 2023-10-22CURRENT_DATE() + 0,	                            -- 20231022CURRENT_DATE() + 1;	                            -- 20231023
  • + N 表示把日期转为 yyyyMMdd 格式 + N。

9.3 CURRENT_TIME() 函数

MySQL CURRENT_TIME() 函数按 hh:mm:ss 格式返回系统的当前时间。
CURRENT_TIME() 函数与 CURTIME() 函数完全相同。

语法:

CURRENT_TIME
CURRENT_TIME()

返回值:

  • 当前时间。

示例:

SELECT CURRENT_TIME,		                            -- 15:28:58CURRENT_TIME + 1,	                            -- 152859CURRENT_TIME(),	                                -- 15:28:58CURRENT_TIME() + 0,	                            -- 152858CURRENT_TIME() + 1	                            -- 152859
  • + N 表示把时间转为 hhmmss 格式 + N。

9.4 CURRENT_TIMESTAMP() 函数

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

语法:

CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()

返回值:

  • 当前时间和日。

示例:

SELECT CURRENT_TIMESTAMP,				                -- 2023-10-22 15:32:40CURRENT_TIMESTAMP + 1,		                    -- 20231022153241CURRENT_TIMESTAMP(),			                -- 2023-10-22 15:32:40CURRENT_TIMESTAMP() + 0,	                    -- 20231022153240CURRENT_TIMESTAMP() + 1;	                    -- 20231022153241
  • + N 表示把日期时间转为 yyyyMMddhhmmss 格式 + N。

9.5 CURTIME() 函数

MySQL CURTIME() 函数按 hh:mm:ss 格式返回系统的当前时间。
CURTIME() 函数与 CURRENT_TIME() 函数完全相同。

语法:

CURTIME()

返回值:

  • 当前时间。

示例:

SELECTCURTIME(), 			                            -- 15:39:13CURTIME() + 0, 	                                -- 153913CURTIME() + 1	                                -- 153914
  • + N 表示把日期时间转为 hhmmss 格式 + N。

十、其它日期时间函数

10.1 MICROSECOND() 函数

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

语法:

MICROSECOND(time)

参数说明:

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

返回值:

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

示例:

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

10.2 SECOND() 函数

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

语法:

SECOND(time)

参数说明:

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

返回值:

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

示例:

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

10.3 MINUTE() 函数

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

语法:

MINUTE(time)

参数说明:

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

返回值:

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

示例:

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

10.4 HOUR() 函数

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

语法:

HOUR(time)

参数说明:

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

返回值:

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

示例:

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

10.5 DAY() 函数

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

语法:

DAY(expr)

参数说明:

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

返回值:

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

示例:

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

10.6 MONTH() 函数

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

语法:

MONTH(date)

参数说明:

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

返回值:

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

示例:

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

10.7 QUARTER() 函数

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

语法:

QUARTER(date)

参数说明:

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

返回值:

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

示例:

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

10.8 YEAR() 函数

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

语法:

YEAR(date)

参数说明:

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

返回值:

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

示例:

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

10.9 TO_SECONDS() 函数

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

语法:

TO_SECONDS(date_or_datetime)

参数说明:

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

返回值:

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

示例:

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

10.10 MONTHNAME() 函数

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

语法:

MONTHNAME(date)

参数说明:

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

返回值:

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

示例:

SELECTMONTHNAME('2023-10-01'),	                    -- OctoberMONTHNAME('2023-11-01'),	                    -- NovemberMONTHNAME('2023-12-01'),	                    -- DecemberMONTHNAME('2024-01-01'),	                    -- JanuaryMONTHNAME('2024-02-01'),	                    -- FebruaryMONTHNAME('2024-03-01'),	                    -- MarchMONTHNAME('2024-04-01'),	                    -- AprilMONTHNAME('2024-05-01'),	                    -- MayMONTHNAME('2024-06-01'),	                    -- JuneMONTHNAME('2024-07-01'),	                    -- JulyMONTHNAME('2024-08-01'),	                    -- AugustMONTHNAME('2024-09-01'),	                    -- SeptemberMONTHNAME('Not A DATE'),	                    -- NULLMONTHNAME(NULL)	                                -- NULL

10.11 PERIOD_ADD() 函数

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

语法:

PERIOD_ADD(period, month_number)

参数说明:

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

返回值:

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

示例:

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

10.12 PERIOD_DIFF() 函数

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

语法:

PERIOD_DIFF(period1, period2)

参数说明:

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

返回值:

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

示例:

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

10.13 CONVERT_TZ() 函数

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

语法:

CONVERT_TZ(datetime, fromTimeZone, toTimeZone)

参数说明:

  • 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

log4j2 burp插件-Log4j2Scan(二)

该工具为被动扫描Log4j2漏洞CVE-2021-44228的BurpSuite插件,具有多DNSLog(后端)平台支持,支持异步并发检测、内网检测、延迟检测等功能。 一、安装方法 建议使用BurpSuite 2020或以上更高版本,低版本BurpSuite未经严…

【idea】查看spring源代码没有注释

问题描述 点击类(如:AnnotationConfigApplicationContext )看到的没有注释 看到有: Decompiled .class file, bytecode version: 52.0 (java 8) 翻译过来是:解压.class文件,字节码版本:52.0…

【数据结构与算法】:插入排序与希尔排序

🔥个人主页: Quitecoder 🔥专栏: 数据结构与算法 欢迎大家来到初阶数据结构的最后一小节:排序 目录 1.排序的基本概念与分类1.1什么是排序的稳定性?1.2内排序与外排序内排序外排序 2.插入排序2.1实现插入排序2.3稳定性…

Linux:kubernetes(k8s)Deployment的操作(13)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…

WPF —— Grid网格布局

1 :Grid网格布局简介 Grid为WPF中最常用的布局容器, 作为View中的主要组成部分, 负责框架中整体的页面布局。 2:网格标签Grid.ColumnDef Grid.ColumnDefinitions自定义列 只能设置宽度 不能设置高度ColumnDefinition 每一个列可以设置宽度,…

有来团队后台项目-解析6

element-icon 引入 安装 在解析3中,已经安装过 创建plugins 文件夹 icons 文件 import type { App } from "vue"; import * as ElementPlusIconsVue from "element-plus/icons-vue";// 注册所有图标 export function setupElIcons(app: App…

使用docker搭建ELK进行日志收集

目录 docker安装es docker安装kibana 为es配置中文分词器 安装原生logstash 项目服务集成日志收集 为es设置登录密码 为kibana设置登录密码 为es容器设置内存限制 使用htop或者是docker进行内存使用查询 docker安装es 与自己的springBoot版本适配即可,下面…

鸿蒙开发实战:【电话服务子系统】

简介 电话服务子系统,提供了一系列的API用于获取无线蜂窝网络和SIM卡相关的一些信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息。 各个模块主要作用如下: 核心服务模块:主要功能是初始化RI…

Docker进阶:深入了解 Dockerfile

Docker进阶:深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、…

U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装

U盘启动盘 制作Linux Ubuntu CentOS系统启动盘 系统安装 准备条件 准备一个U盘,建议容量至少为8GB,以便存放系统镜像文件 一台已经安装好操作系统的计算机,用于制作U盘启动盘 Ubuntu和CentOS的Linux ISO镜像文件。可以从官方网站或相关资源…

【学一点RISC-V】RISC-V IMSIC

IMSIC RISC-V AIA 文档 第三章 Incoming MSI Controller (IMSIC) 传入 MSI 控制器(IMSIC)是一个可选的 RISC-V 硬件组件,与 hart 紧密相连,每个 hart 有一个 IMSIC。IMSIC 接收并记录 Hart 的传入消息信号中断 (MSI),并…

【框架学习 | 第五篇】SpringMVC(常用注解、获取请求参数、域对象共享数据、拦截器、异常处理、上传/下载文件)

文章目录 1.SpringMVC简介1.1定义1.2主要组件1.3工作流程1.3.1简要流程1.3.2详细流程 1.4优缺点 2.常用注解3.获取请求参数3.1通过 HttpServletRequest 获取请求参数3.2通过控制器方法的形参获取请求参数3.2.1请求路径参数与方法形参一致3.2.2请求路径参数与方法形参不一致3.2.…

【附学习笔记】现在学网络安全主要是实战还是打CTF?

作为一个5年资深网络安全工程师前来分享我的看法。 在我看来,无论是实战还是打CTF(Capture The Flag,夺旗赛),都是学习网络安全的重要方面,只是侧重点可能有所不同。 网络安全是一个复杂且不断发展的领域…

springboot学习(八十六) springboot使用graalvm编译native程序

一、windows环境下 1.下载graalvm的jdk https://injdk.cn/ 下载windows版本 配置java环境变量,配置过程略 2.下载visual Studio Build Tools 下载地址:https://aka.ms/vs/17/release/vs_BuildTools.exe 安装后选择组件: 其中windows S…

《ElementPlus 与 ElementUI 差异集合》el-form-item CSS 属性 display 有变化

差异 element-ui el-form 中,属性display: flex; 导致元素在一排;element-plus el-form 中,属性display: block; 元素按照自己的属性排列; /* element ui */ display: block;/*element plus */ display: flex;如图所示 解决方案…

深度解析:cache的基本概念原理扫盲

引流关键词:缓存,高速缓存,cache, CCI,CMN,CCI-550,CCI-500,DSU,SCU,L1,L2,L3,system cache, Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存…

【BUG 弹药库】Tortoise git 绿色的勾 ✔ 和 红色的 !突然不见了该如何解决呢?

文章目录 1. 出现的问题描述如下所示:2. 如何解决这个问题呢 ? 1. 出现的问题描述如下所示: 用 TortoiseGit 提交代码的时候,红色的 ! 和 绿色的 ✔ 突然消失了; 2. 如何解决这个问题呢 ? ① 首先按住快…

商业模式的深度解析:以四个特点构筑成功之路

商业模式,是企业将产品、服务、信息流、资金流等要素组合在一起,形成独特价值主张,并通过特定的渠道和方式传递给目标市场,从而获取利润的一种系统性设计。一个成功的商业模式,往往具备四个显著特点:重点突…

企业微信如何接入第三方应用?

1.登录企业微信管理后台:https://work.weixin.qq.com/wework_admin​​​​​ 2.点击创建应用; ​​​​​​​ 3. 此时可以看到已经创建好的应用,并且生成应用的唯一id(agentId) 4. 第三方应用申请域名 (举例&…

智慧楼宇物联网建设实施方案(2)

建设方案 楼宇综合管理平台 智慧楼宇物联网应用综合管理系统是对整个物联网系统的集中监控和展示。其主要功能是对各应用子系统的关键监测数据进行数据格式解析并呈现。进而使管理者能够从整体上对整个物联网系统运行状态有个直观的了解。其不同于各专业子系统的管理软件,重…