题解 | #牛客直播各科目平均观看时长#

牛客直播各科目平均观看时长

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大厂面试题题解~

全部评论

相关推荐

01-21 12:26
暨南大学 golang
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务