题解 | #牛客直播各科目平均观看时长#
牛客直播各科目平均观看时长
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大厂面试题题解~