内容正文:
项目三 任务四
MySQL函数(五)
数据库原理与应用技术-MySQL
同步精品课堂
河北科学技术出版社
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
知识目标
认识常用日期和时间函数的格式、功能,灵活使用函数解决问题。
教学重难点
二
教学重点
认识常用日期和时间函数的格式、功能。
教学难点
灵活使用函数解决问题。
导入新课
三
想一想?
场景:
学校图书馆需要统计不同书籍类型的借阅量,并计算每种类型的平均借阅天数。
需求:
查询每种书籍类型的借阅量。
计算每种类型的平均借阅天数。
MySQL中的函数就可以快速完成需求
新知讲授
四
日期和时间函数
MySQL 提供了丰富的日期和时间函数,可以方便地进行日期和时间的计算、格式化等操作。
新知讲授
四
日期和时间函数
CURDATE() 和 CURRENT_DATE() 都是 MySQL 中获取当前日期的函数,它们功能相同,只是语法略有区别。
CURDATE():
语法:CURDATE() (需要括号)
返回值:DATE 类型,格式为 “YYYY-MM-DD”
CURRENT_DATE:
语法:CURRENT_DATE
返回值:DATE 类型,格式为 “YYYY-MM-DD”
新知讲授
四
日期和时间函数
注意:
如果需要在列名中包含日期,可以使用 CURRENT_DATE,例如 SELECT CURRENT_DATE AS today;。
如果需要与其他日期函数结合使用,可以使用 CURDATE(),例如 SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);。
新知讲授
四
日期和时间函数
CURTIME() 和 CURRENT_TIME() 都是 MySQL 中获取当前时间的函数,它们功能相同,只是语法略有区别。
CURTIME():
语法:CURTIME() (需要括号)
返回值:TIME 类型,格式为 “HH:MM:SS”
CURRENT_TIME:
语法:CURRENT_TIME (不需要括号)
返回值:TIME 类型,格式为 “HH:MM:SS”
新知讲授
四
日期和时间函数
区别:
CURTIME() 是函数,需要用括号括起来。
CURRENT_TIME 是一个列名,不需要括号。
如果需要在列名中包含时间,可以使用 CURRENT_TIME。
如果需要与其他时间函数结合使用,可以使用 CURTIME(),例如 SELECT TIME_TO_SEC(CURTIME());。
新知讲授
四
日期和时间函数
NOW() 是 MySQL 中的一个常用函数,用于获取当前的日期和时间,包括年、月、日、时、分、秒。
功能:
返回当前的日期和时间,包括时区和夏令时的影响。
返回值:
DATETIME 类型,格式为 “YYYY-MM-DD HH:MM:SS”
新知讲授
四
日期和时间函数
注意:
NOW() 返回的是服务器上的当前日期和时间,与客户端的时间设置无关。
如果需要获取不带时区的当前日期和时间,可以使用 UTC_TIMESTAMP() 函数。
NOW() 是一个简单而实用的函数,可以方便地获取当前的日期和时间,常用于记录日志、时间比较和时间计算等场景。
新知讲授
四
日期和时间函数
CURRENT_TIMESTAMP() 是 MySQL 中获取当前日期和时间的函数,与 NOW() 功能相同,但语法略有区别。
功能:
返回当前的日期和时间,包括时区和夏令时的影响。
返回值:
DATETIME 类型,格式为 “YYYY-MM-DD HH:MM:SS”
新知讲授
四
日期和时间函数
注意:
CURRENT_TIMESTAMP() 返回的是服务器上的当前日期和时间,与客户端的时间设置无关。
如果需要获取不带时区的当前日期和时间,可以使用 UTC_TIMESTAMP() 函数。
新知讲授
四
日期和时间函数
SYSDATE() 是 MySQL 中获取当前日期和时间的函数。
功能:
返回当前的日期和时间,不包括时区和夏令时的影响。
返回值:
DATETIME 类型,格式为 “YYYY-MM-DD HH:MM:SS”
新知讲授
四
日期和时间函数
与 NOW() 和 CURRENT_TIMESTAMP() 的区别:
时区和夏令时: SYSDATE() 不考虑时区和夏令时的影响,而 NOW() 和 CURRENT_TIMESTAMP() 会考虑。
返回值: SYSDATE() 和 NOW() 返回的是相同的值,但 CURRENT_TIMESTAMP() 返回的值可能会因为时区和夏令时的差异而略有不同。
新知讲授
四
日期和时间函数
LOCALTIME() 和 LOCALTIMESTAMP() 是 MySQL 中用于获取当前日期和时间的函数,与 NOW() 和 CURRENT_TIMESTAMP() 类似,但它们返回的是服务器本地时区的当前日期和时间。
LOCALTIME():
语法:LOCALTIME() (不需要括号)
返回值:TIME 类型,格式为 “HH:MM:SS”
LOCALTIMESTAMP():
语法:LOCALTIMESTAMP() (不需要括号)
返回值:DATETIME 类型,格式为 “YYYY-MM-DD HH:MM:SS”
新知讲授
四
日期和时间函数
注意:
当需要获取服务器本地时区的当前日期和时间时,可以使用 LOCALTIME() 或 LOCALTIMESTAMP()。
如果需要将时间戳转换为服务器本地时区的时间戳,可以使用这些函数。
LOCALTIME() 和 LOCALTIMESTAMP() 返回的是服务器本地时区的当前日期和时间,与客户端的时间设置无关。
如果需要获取不带时区的当前日期和时间,可以使用 UTC_TIMESTAMP() 函数。
新知讲授
四
日期和时间函数
DATE(d) 是 MySQL 中用于提取日期部分的函数,它从给定的日期时间字符串或日期时间表达式中提取日期部分。
功能:
从给定的日期时间字符串或日期时间表达式中提取日期部分。
返回值:
返回一个 DATE 类型的值,格式为 “YYYY-MM-DD”。
新知讲授
四
日期和时间函数
注意:
DATE(d) 函数只能提取日期部分,不能提取时间部分。
如果输入的 d 参数不是有效的日期时间字符串或日期时间表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
TIME(t) 是 MySQL 中用于提取时间部分的函数,它从给定的日期时间字符串或日期时间表达式中提取时间部分。
功能:
从给定的日期时间字符串或日期时间表达式中提取时间部分。
语法:
TIME(t);
其中 t 是日期时间字符串或日期时间表达式。
返回值:
返回一个 TIME 类型的值,格式为 “HH:MM:SS”。
新知讲授
四
日期和时间函数
注意:
TIME(t) 函数只能提取时间部分,不能提取日期部分。
如果输入的 t 参数不是有效的日期时间字符串或日期时间表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
YEAR(d) 是 MySQL 中用于提取日期 d 年份部分的函数。
功能:
从日期 d 中提取年份部分。
语法:
YEAR(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个整数,表示日期 d 的年份。
新知讲授
四
日期和时间函数
注意:
YEAR(d) 函数只能提取年份部分,不能提取月份和日。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
MONTH(d) 是 MySQL 中用于提取日期 d 月份部分的函数。
功能:
从日期 d 中提取月份部分。
语法:
MONTH(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个整数,表示日期 d 的月份。
新知讲授
四
日期和时间函数
注意:
MONTH(d) 函数只能提取月份部分,不能提取年份和日。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
DAY(d) 是 MySQL 中用于提取日期 d 中日期的日部分的函数。
功能:
从日期 d 中提取日期的日部分。
语法:
DAY(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个整数,表示日期 d 的日。
新知讲授
四
日期和时间函数
注意:
DAY(d) 函数只能提取日期中的日部分,不能提取月份和年份。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
MONTHNAME(d) 是 MySQL 中用于获取日期 d 月份名称的函数。
功能:
返回日期 d 中的月份的英文名称。
语法:
MONTHNAME(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个字符串,表示日期 d 的月份的英文名称。
新知讲授
四
日期和时间函数
注意:
MONTHNAME(d) 函数返回的是英文月份名称。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
DAYNAME(d) 是 MySQL 中用于获取日期 d 中日期的英文星期名称的函数。
功能:
返回日期 d 中的星期的英文名称。
语法:
DAYNAME(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个字符串,表示日期 d 中的星期的英文名称。
新知讲授
四
日期和时间函数
注意:
DAYNAME(d) 函数返回的是英文星期名称。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
DAYOFYEAR(d) 是 MySQL 中用于获取日期 d 中日期的年份中的日期的函数。
功能:
返回日期 d 是一年中的第几天。
语法:
DAYOFYEAR(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个整数,表示日期 d 是一年中的第几天。
新知讲授
四
日期和时间函数
注意:
DAYOFYEAR(d) 函数只能提取日期在一年的位置,不能提取月份和日。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
新知讲授
四
日期和时间函数
DAYOFMONTH(d) 是 MySQL 中用于获取日期 d 中日期的月份中的日期的函数。
功能:
返回日期 d 是一月中的第几天。
语法:
DAYOFMONTH(d);
其中 d 是日期字符串或日期表达式。
返回值:
返回一个整数,表示日期 d 是一月中的第几天。
新知讲授
四
日期和时间函数
注意:
DAYOFMONTH(d) 函数只能提取日期在一月中的位置,不能提取年份和日。
如果输入的 d 参数不是有效的日期字符串或日期表达式,函数将返回 NULL。
师生互动
五
1 动手操作
练习课堂案例
2 想一想
字符函数能够帮我们解决现实中的哪些问题?
随堂练习
六
1 一个日期 ‘2023-01-01’,以下( )函数可以返回该日期的年份。
A. YEAR(‘2023-01-01’)
B. MONTH(‘2023-01-01’)
C. DAY(‘2023-01-01’)
D. DAYOFYEAR(‘2023-01-01’)
答案:A
解析:A 选项的 YEAR 函数用于提取日期中的年份部分,返回 ‘2023’。
B 选项的 MONTH 函数用于提取日期中的月份部分,返回 ‘1’。
C 选项的 DAY 函数用于提取日期中的日部分,返回 ‘1’。
D 选项的 DAYOFYEAR 函数用于提取日期在一年的位置,返回 ‘1’。
随堂练习
六
2.有一个日期 ‘2023-01-01 12:00:00’,以下( )函数可以返回该日期的时间部分。
A. DATE(‘2023-01-01 12:00:00’)
B. TIME(‘2023-01-01 12:00:00’)
C. DAYNAME(‘2023-01-01 12:00:00’)
D. MONTHNAME(‘2023-01-01 12:00:00’)
答案: B
解析: A 选项的 DATE 函数用于提取日期中的日期部分,返回 ‘2023-01-01’。
B 选项的 TIME 函数用于提取日期中的时间部分,返回 ‘12:00:00’。
C 选项的 DAYNAME 函数用于返回日期中的星期的英文名称,返回 ‘Sunday’。
D 选项的 MONTHNAME 函数用于返回日期中的月份的英文名称,返回 ‘January’。
随堂练习
六
3 一个日期 ‘2023-01-01 12:00:00’,以下( )函数可以返回该日期是一年中的第几天。
A. DAY(‘2023-01-01 12:00:00’)
B. DAYOFYEAR(‘2023-01-01 12:00:00’)
C. MONTH(‘2023-01-01 12:00:00’)
D. YEAR(‘2023-01-01 12:00:00’)
答案:B
解析:A 选项的 DAY 函数用于提取日期中的日部分,返回 ‘1’。
B 选项的 DAYOFYEAR 函数用于提取日期在一年的位置,返回 ‘1’。
C 选项的 MONTH 函数用于提取日期中的月份部分,返回 ‘1’。
D 选项的 YEAR 函数用于提取日期中的年份部分,返回 ‘2023’。
随堂练习
六
4函数 CURRENT_TIMESTAMP() 返回当前的日期和时间,包括时区和夏令时的影响。( )
答案: 正确
解析:CURRENT_TIMESTAMP() 函数返回的是当前的日期和时间,包括时区和夏令时的影响。
随堂练习
六
5函数 LOCALTIME() 和 LOCALTIMESTAMP() 返回的是计算机本地时区的当前日期和时间。( )
答案:错误
解析: LOCALTIME() 和 LOCALTIMESTAMP() 返回的是服务器本地时区的当前日期和时间。
随堂练习
六
6 函数 NOW() 返回的是客户端上的当前日期和时间。( )
答案:错误
解析:NOW() 返回的是服务器上的当前日期和时间,与客户端的时间设置无关。
随堂练习
六
7 函数 DAYOFMONTH(d) 返回日期 d 是一月中的第几天。( )
答案:正确
解析:DAYOFMONTH(d) 函数返回日期 d 是一月中的第几天。例如,对于日期 '2023-01-01',函数返回 1,因为这是一月的第一天。
课堂小结
七
谢谢
$$