sql - 如何通过 SQL Server 获取特定时间段的数据
问题描述
我有多个设备 IMEI,它们不断发送数据。有一个表格可以查看设备发送最后一个数据的时间,格式如下:12/17/2020 4:05:02 PM。现在我想获取那些在过去 4 个月内发送数据的设备。我已经得到了连接,但无法理解我需要在Where
子句中做出的条件。
解决方案
SQL Server 在将字符串转换为日期方面非常灵活,因此您应该能够只使用convert()
orcast()
并进行直接过滤。
所以:
where convert(datetime, mycol) >= dateadd(month, -4, getdate())
这会过滤从当前日期/时间开始的最近 4 个月的数据。如果您想要整个月份(当前月份和前三个月)
where convert(datetime, mycol) >= dateadd(month, -3, datefromparts(year(getdate()), month(getdate()), 1)
推荐阅读
- c - 如何制作一个接收其他函数作为参数的函数(没有已知参数)
- java - 无法创建多合一共享选项
- maven - 通过 Gradle 在 setting.xml 中使用 Maven 凭据
- shell - Makefile中执行shell命令的规则
- mysql - 使用 mysql group by 和 where by date 返回 count 0
- android - cordova phonegap-plugin-push v1.x - 如何使其与 Android 8.1(API 级别 27)一起使用
- c# - 智能测试 - 无法在 x 次运行中生成任何测试
- amazon-web-services - 是否可以在无服务器框架中分离我的代码和基础设施?
- openvas - OpenVAS:OSPD 扫描仪不能用作新任务中的扫描仪
- arcgis-js-api - ARCGIS API 4 -- 每个点或地址的自定义标记图像