2025年sqlserver数据库基础知识(sql server数据库基础)

sqlserver数据库基础知识(sql server数据库基础)有如下一张记录表 T 如何查询出每隔 15 分钟的记录数 T nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 预期结果如下 nbsp nbsp 参考答案 nbsp 解析 这里主要是分组的这个函数改怎么理解 为了大家看的更加清楚明白 我们把这其中的每个函数都单独拆分开给大家看看 结果如下 nbsp 这里最重要的就是第 3 个函数转换 DATEDIFF 它是首先将 times 的完整时间 DATEADD ss 1



有如下一张记录表T20191105,如何查询出每隔15分钟的记录数

T20191105

                                             

 

预期结果如下:

 

 

参考答案

 

解析:

这里主要是分组的这个函数改怎么理解。为了大家看的更加清楚明白,我们把这其中的每个函数都单独拆分开给大家看看

结果如下:

 

这里最重要的就是第3个函数转换DATEDIFF,它是首先将times的完整时间DATEADD(ss,1,times)减去times的日期部分CONVERT(VARCHAR(10),DATEADD(ss,1,times),最后就得到了时间部分,然后将时间按分钟进行换算,得出一个整数。

我们知道在SQL中整数除以15最后还是整数,会自动直接舍弃小数部分。

其实关键就是要舍弃这个小数部分,这样我们再乘以15就可以得到times最接近的15分钟是那一刻了。再将这个时刻对应的整数转换成时间类型,就是第5部我们得到内容了。

 

解析:

这里是利用对时间格式化后进行分组求个数,其中子查询里面是解题的关键,先将带时间的日期通过UNIX_TIMESTAMP格式化成秒,然后除以900秒后用FLOOR向下取整得到一个整数,这样就可以得到一个按15分钟分组的时间序列,再通过FROM_UNIXTIME将unit_time转化成带时间的日期格式即可实现题目中的要求。

编程小号
上一篇 2025-03-26 16:30
下一篇 2025-02-07 12:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/22109.html