紫zi 2017-05-04 01:03 采纳率: 0%
浏览 644

SqlServer分页查询根据时间为条件出现了bug

我这个是做的一个日报表,根据时间查询出现了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)图片图片

  • 写回答

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卫星二体模型仿真