题解 | #牛客直播各科目平均观看时长#
牛客直播各科目平均观看时长
https://www.nowcoder.com/practice/e9e7dc4c8623467793f6999cbfee9360
-- 考察timestampdiff()函数用法:TIMESTAMPDIFF() 函数返回两个日期时间之间的时间间隔。
-- TIMESTAMPDIFF(unit, datetime1, datetime2)
-- unit
-- 必需的。时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.
select
c.course_name,
round(avg(timestampdiff(MINUTE, in_datetime, out_datetime)), 2) as avg_Len
from attend_tb a left join course_tb c
on a.course_id = c.course_id
group by a.course_id,c.course_name
order by avg_Len desc
补充SQL时间函数相关知识:
-- TIMESTAMPDIFF()
-- 该函数返回两个日期时间之间的时间间隔。
-- 用法:TIMESTAMPDIFF(unit, datetime1, datetime2)
-- unit 该参数是必需的。时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.
-- 例子如下:
TIMESTAMPDIFF(YEAR, '2021-12-28', '2022-02-28'): 0
TIMESTAMPDIFF(MONTH, '2021-02-28', '2022-02-28'): 12
TIMESTAMPDIFF(MONTH, '2022-02-28', '2021-02-28'): -12
-- TIME()
-- 该函数从时间或者日期时间中提取时间部分并返回
-- 用法:TIME(expr)
-- 例子如下:
TIME('10:10:10'): 10:10:10
TIME('2022-02-28 10:10:10'): 10:10:10
-- TIME_FORMAT()
-- 该函数按照指定的格式格式化时间并返回格式化后的字符串。
-- 用法:TIME_FORMAT(time, format)
-- 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)
%% 转义 %
-- 例子如下:
TIME_FORMAT("19:30:10", "%H %i %s"): 19 30 10
TIME_FORMAT("19:30:10", "%h %i %s %p"): 07 30 10 PM
TIME_FORMAT("19:30:10", "%r"): 07:30:10 PM
TIME_FORMAT("19:30:10", "%T"): 19:30:10
TIME_FORMAT("19:30:10", "%H %i %s"): 19 30 10
-- TIMEDIFF()
-- 该函数返回两个时间之间的差值,它返回一个 HH:MM:SS 格式的时间值。
-- 用法:TIMEDIFF(time1, time2)
-- 例子如下:
+----------------------------------+----------------------------------+
| TIMEDIFF('12:12:12', '12:10:10') | TIMEDIFF('12:12:12', '10:10:10') |
+----------------------------------+----------------------------------+
| 00:02:02 | 02:02:02 |
+----------------------------------+----------------------------------+
-- TIMESTAMP()
-- 该函数累加所有参数并将结果作为日期时间值返回。
-- 用法:
TIMESTAMP(date_or_datetime) 函数将 date_or_datetime 作为日期时间值返回。 TIMESTAMP(date_or_datetime, time) 将 date_or_datetime 与 time 的和作为日期时间值返回。
-- 例子如下:
+-------------------------+
| TIMESTAMP('2022-02-28') |
+-------------------------+
| 2022-02-28 00:00:00 |
+-------------------------+
+-------------------------------------+
| TIMESTAMP('2022-02-28', '10:10:10') |
+-------------------------------------+
| 2022-02-28 10:10:10 |
+-------------------------------------+
-- TIMESTAMPADD()
-- 该函数将指定的时间间隔 interval 加到一个日期时间值上并返回结果。
-- 用法:TIMESTAMPADD(unit, interval, datetime)
-- unit是必需的。时间间隔的单位,可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.
-- interval 可选的。一个表示时间间隔的整数值。
-- datetime 可选的。一个 datetime 值或表达式。
-- 例子如下:
+-------------------------------------+------------------------------------+
| TIMESTAMPADD(WEEK, 1, '2022-02-28') | TIMESTAMPADD(DAY, 7, '2022-02-28') |
+-------------------------------------+------------------------------------+
| 2022-03-07 | 2022-03-07 |
+-------------------------------------+------------------------------------+
SQL大厂面试题 文章被收录于专栏
牛客网sql大厂面试题题解~
海康威视公司氛围 1032人发布
查看16道真题和解析