轻松驾驭时间流:MYSQL日期与时间函数的实用技巧
🌈 个人主页:danci_
🔥 系列专栏:《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)
参数说明:
- 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:必需的。一个日期或者日期时间表达式。
返回值:
- 返回给定日期的工作日名称,返回值将是以下值中的一个:
Monday
,Tuesday
,Wednesday
,Thursday
,Friday
,Saturday
,Sunday
。 - 返回
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
类型,并且时间间隔为YEAR
,MONTH
或者DAY
。 - 返回
DATETIME:
- 如果
date
参数是DATE
类型,并且时间间隔为HOURS
,MINUTES
或者SECONDS
。 - 如果
date
参数是DATETIME
类型。 - 如果
date
参数是TIME
类型,并且时间间隔为YEAR
,MONTH
或者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
类型,且时间间隔为YEAR
,MONTH
或者DAY。
- 返回
TIME:date
是TIME
且计算只涉及HOURS
,MINUTES
和SECONDS
部分。 - 返回
DATETIME:
date
是DATE
类型,并且时间间隔为HOURS
,MINUTES
或者SECONDS。
date
是DATETIME
类型。date
是TIME
类型,并且时间间隔为YEAR
,MONTH
或者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
类型,且时间间隔为YEAR
,MONTH
或者DAY。
- 返回
TIME情况:date
是TIME
类型,且计算只涉及HOURS
,MINUTES
和SECONDS
部分。 - 返回
DATETIME情况:
date
参数是DATE
类型,并且时间间隔为HOURS
,MINUTES
或者SECONDS。
date
参数是DATETIME
类型。date
参数是TIME
类型,并且时间间隔为YEAR
,MONTH
或者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
类型,且时间间隔为YEAR
,MONTH
或者DAY。
- 返回
TIME情况:date
是TIME
类型,且计算只涉及HOURS
,MINUTES
和SECONDS
部分。 - 返回
DATETIME情况:
date
是DATE
类型,且时间间隔为HOURS
,MINUTES
或者SECONDS。
- 如果
date
是DATETIME
类型。 date
是TIME
类型,且时间间隔为YEAR
,MONTH
或者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:59
,HOUR()
函数的最大返回值是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'
。
返回值:
- 返回新时区的日期时间。
- 参数错误或者为
NULL
,CONVERT_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
相关文章:

轻松驾驭时间流:MYSQL日期与时间函数的实用技巧
🌈 个人主页:danci_🔥 系列专栏:《MYSQL应用》💪🏻 制定明确可量化的目标,坚持默默的做事。 轻松驾驭时间流:MYSQL日期与时间函数的实用技巧 MYSQL日期时间函数是数据库操作中不可…...

如何在极狐GitLab 使用Docker 仓库功能
本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在[极狐GitLab…...

streamlit 大模型前段界面
结合 langchain 一起使用的工具,可以显示 web 界面 pip install streamlit duckduckgo-search 运行命令 streamlit run D:\Python_project\NLP\大模型学习\test.py import os from dotenv import load_dotenv from langchain_community.llms import Tongyi load…...

K8s 命令行工具
文章目录 K8s 命令行工具kubectl 工具在任意节点使用kubectl方式创建对象命令显示和查找资源更新资源修补资源编辑资源Scale 资源删除资源查看pod信息节点相关操作 K8s 命令行工具 在搭建集群的时候,我们通过yum 下载了kubeadm kubelet kubectl 三个命令行工具&…...

优先级队列
优先级队列的基本使用 模拟实现上面的接口函数,优先级队列不是队列,而是类似一个堆一样的东西,我们先来试试它的接口函数是怎么个样子的。 需要包含的头文件是queue。 #include<iostream> #include<queue> using namespace std;…...

gitlab使用
个人笔记(整理不易,有帮助,收藏点赞评论,爱你们!!!你的支持是我写作的动力) 笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 个人随笔…...

ppt技巧:如何将Word文档大纲中导入到幻灯片中?
在PowerPoint中,将Word文档的大纲导入到新的幻灯片是一种非常实用的技巧。以下是详细的步骤: 首先,需要打开PowerPoint软件并打开原始的幻灯片文件。 在PowerPoint的顶部【开始】菜单栏中,找到并点击“新建幻灯片”按钮࿰…...

0.开篇:SSM+Spring Boot导学
1. 为什么要使用框架 Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 几乎当下所有企业级JavaEE开发都离不开SSM(Spring SpringMVC MyBatis)Spring B…...

7、configMap
1、configMap是什么 类似与pod的配置中心,不会因为pod的创建销毁,相关配置发生改变 pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod 定义。为了能在多个环境下复⽤pod的定义,需要将配置从pod定义描 述中解耦出来。 2、向容器中…...

【Java面试题】JVM(26道)
文章目录 JVM面试题基础1.什么是JVM?2.JVM的组织架构? 内存管理3.JVM的内存区域是什么?3.1堆3.2方法区3.3程序计数器3.4Java虚拟机栈3.5本地方法栈 4.堆和栈的区别是什么?5.JDK1.6、1.7、1.8内存区域的变化?6.内存泄露…...

(十三)强缓存和协商缓存的区别
一、浏览器的缓存策略 浏览器的缓存策略是指浏览器在加载页面时如何使用和管理缓存机制。可以提高网页加载速度,减轻服务器负载,并提供更好的用户体验。常用的缓存策略有两种:一种是发送请求(协商缓存),一…...

如何创建Windows下google Chrome便携版?
创建google Chrome便携版教程 准备工作: 1,下载GoogleChromePortable启动器 2,下载谷歌浏览器 3,下载7-ZIP 解压提取器 用7zip解压GoogleChromePortable,得到GoogleChromePortable.exe启动器 解压谷歌浏览器 用7…...

rabbitmq安装rabbitmq-delayed-message-exchange插件
下载地址:Community Plugins | RabbitMQ 上传到rabbitmq安装目录的/plugins目录下 我的是/usr/lcoal/rabbitmq/plugins/ 直接安装 [rootk8s-node1 rabbitmq]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange [rootk8s-node1 rabbitmq]# rabbitmq-pl…...

B02、分析GC日志-6.3
1、相关GC日志参数 -verbose:gc 输出gc日志信息,默认输出到标准输出-XX:PrintGC 输出GC日志。类似:-verbose:gc-XX:PrintGCDetails 在发生垃圾回收时打印内存回收详细的日志, 并在进程退出时输出当前内存各区域分配情况-XX:PrintGCTimeStamp…...

Redis中的集群(二)
节点 集群数据结构 redisClient结构和clusterLink结构的相同和不同之处 redisClient结构和clusterLink结构都有自己的套接字描述符和输入、输出缓冲区,这两个结构的区别在于,redisClient结构中的套接字和缓冲区是用于连接客户端的,而clust…...

UVA12538 Version Controlled IDE 题解 crope
Version Controlled IDE 传送门 题面翻译 维护一种数据结构,资磁三种操作。 1.在p位置插入一个字符串s 2.从p位置开始删除长度为c的字符串 3.输出第v个历史版本中从p位置开始的长度为c的字符串 1 ≤ n ≤ 50000 1 \leq n \leq 50000 1≤n≤50000,所…...

OAuth2.0客户端和服务端Java实现
oauth2 引言 读了《设计模式之美》和《凤凰架构》架构安全篇之后,决定写一个OAuth2.0的认证流程的Demo,也算是一个阶段性的总结,具体原理实现见《凤凰架构》(架构安全设计篇)。 涉及到的源码可以从https://github.com/WeiXiao-Hyy/oauth2获…...

物流自动分拣系统激光雷达漫反射板
早在二十世纪六十年代,激光器的诞生为激光雷达技术的发展奠定了基础。随后,激光雷达技术开始应用于各种领域,包括军事、航空、地理勘测等。然而,在物流自动分拣领域,激光雷达的应用相对较晚。 随着物流行业的快速发展和…...

2024 抖音欢笑中国年(三):编辑器技巧与实践
前言 本次春节活动中,我们大部分场景使用内部的 SAR Creator互动方案来实现。 SAR Creator 是一款基于 TypeScript 的高性能、轻量化的互动解决方案,目前支持了Web和字节内部跨端框架平台,服务于字节内部的各种互动业务,包括但不限…...

Python学习入门(1)——基础语句(二)
14. 迭代器和迭代协议 在Python中,迭代器是支持迭代操作的对象,即它们可以一次返回其成员中的一个。任何实现了 __iter__() 和 __next__() 方法的对象都是迭代器。 class Count:def __init__(self, low, high):self.current lowself.high highdef __i…...

vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示
vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示(考勤打卡) 一、创建百度地图账号,获取秘钥二、 引入插件1、安装vue-baidu-map2、在main.js中引入 三、 简单使用 最近写项目的时候,做到了考勤打卡的模块内容&#x…...

使用idea运行程序,发现控制台的中文出现乱码
修改UTF-8发现没有效果,寻找.idea文件夹的encodings.xml文件,将里面的UTF-8全部变成GBK....

基于javassm实现的大学生兼职信息系统
开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&…...

O2OA开发平台如何查看数据表结构?
在访问后端api地址,页面最下方有列示平台的各个服务,点击进入可查看具体的表内容 后端api地址: http://{hostIP}/x_program_center/jest/list.html 其中:{hostIP}为中心服务器所在域名或者IP地址 如下图:...

心理测评性格测试矩阵版h5微信抖音QQ快手小程序app开源版开发
心理测评性格测试矩阵版h5微信抖音QQ快手小程序app开源版开发 支持SAAS、支持独立加密、支持独立开源、价格不同。 自带题库数据,后台一键初始,支持自己上传题目 心理测评 微信公众号微信小程序抖音小程序可打包APP 支持单题、跳跃题、计分题、因子题、…...

【蓝桥杯】十六进制转八进制 C++实现
1.题目信息 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<n<10)。 接下来n行,每行一个由09、大写字母AF组成…...

明明设置数字居中对齐,为什么excel的数字却不居中?
有时候在excel里,选中数据,设置对齐方式 左右居中,然而,数字却怎么都不居中,为什么呢? 1.按快捷键Ctrl1,打开单元格自定义格式对话框,看到是初始界面是在数字的会计专用,…...

深入解析API技术:原理、实现与应用
在现代软件开发中,API(应用程序接口)扮演着至关重要的角色。API 允许不同的软件应用程序和系统之间进行通信和数据交换,从而构建出更加高效、灵活和可扩展的软件解决方案。本文将深入解析API技术的原理、实现方法,并附…...

C语言——数组指针变量
一、什么是数组指针 数组指针变量是指向数组的指针,它可以用来遍历数组元素、进行数组操作以及作为函数参数传递数组等操作。在C语言中,数组名本身就是数组的首地址,因此数组指针可以指向数组的首地址。 数组指针变量的基本形式:…...

Redis的过期策略与内存淘汰机制原理及实践
Redis作为高性能的键值存储系统,其对数据过期与内存管理的设计直接影响到系统的性能与资源利用率。本文将以生动的比喻、通俗的语言,深入剖析Redis的过期策略与内存淘汰原理,助您全面理解数据在Redis中的生命周期管理艺术。 一、Redis过期策…...