我这个是做的一个日报表,根据时间查询出现了bug,就是如果10号的没有排完,第二天会接着排代码如下:
select top 16 from(select gooaname,sum(counts) from 表) b where IdateT >=(select top 1 MAX(IdateT) from (select top 1 goodname,IdateT from 表 where 1=1 and IdateT >= '2013/12/02' and IdateT <= '2017/05/03' group by IdateT,goodname order by IdateT) a)
SqlServer分页查询根据时间为条件出现了bug
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-05 20:08关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题可能是因为在SQL Server中,日期和时间类型的字段不能直接进行比较。为了处理这种情况,你可以使用函数
DATEADD
来将两个日期或时间值转换为相同格式,并且使用DATEDIFF
来计算它们之间的差异。这是一个示例:
SELECT TOP 16 [GoodName], SUM([Counts]) AS [Total Counts] FROM ( SELECT [GoodName], IdateT, DATEADD(day, DATEDIFF(day, 0, IdateT), 0) AS [NewDateT] FROM [Table] t WHERE IdateT >= '2013-12-02' AND IdateT <= '2017-05-03' GROUP BY [GoodName], IdateT ORDER BY [NewDateT] ) b WHERE [NewDateT] BETWEEN '2013-12-02' AND '2017-05-03'
在这个例子中,我们首先创建了一个临时表,其中包含原始日期和时间数据。然后,我们使用
DATEADD
函数将每个日期转换为新的日期格式(这里我们假设新日期是从旧日期加上一天开始)。最后,我们检查新的日期是否在指定的时间范围内。请注意,这只是一个基本的示例。你可能需要根据你的具体需求对其进行调整。例如,如果你想要按照不同的时间段来分页,你可能需要修改
GROUP BY
子句以包含更多的列。解决 无用评论 打赏 举报
悬赏问题
- ¥15 wannier复现图像时berry曲率极值点与高对称点严重偏移
- ¥15 利用决策森林为什么会出现这样·的问题(关键词-情感分析)
- ¥15 DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI[/untitled30_war_e
- ¥15 使用deepspeed训练,发现想要训练的参数没有梯度
- ¥15 寻找一块做为智能割草机的驱动板(标签-stm32|关键词-m3)
- ¥15 信息管理系统的查找和排序
- ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),怎么用读取的电磁传感器信号表示小车所在的位置
- ¥15 如何解决y_true和y_predict数据类型不匹配的问题(相关搜索:机器学习)
- ¥15 PB中矩阵文本型数据的总计问题。
- ¥15 MATLAB卫星二体模型仿真