路上走着呢 2015-11-11 07:01 采纳率: 0%
浏览 2058
已结题

sql数据问题。某个时间段内汇总特别慢,而其他时间段汇总就很快,这是什么原因呢?

同一个表,有时间字段,比如我现在查询2015年5月份数据特别的慢,有时候根本就查不出来,而其他月份的数据就很快。

  • 写回答

1条回答 默认 最新

  • qq_32730069 2015-11-11 07:16
    关注

    本文对应Sql Server 中常用的时间查询的进行一些汇总,例如查询当天的、本周的、本月的、本季度的,某个时间段内的时间。

    实例
    实例(我的)表名:mytable 字段名:mydate

    (一)、当天(某两个时间段)

    select * from mytable where DATEDIFF(dd,mydate,GETDATE())=0语法:DATEDIFF(datepart,startdate,enddate)
    复制代码
    意义:DATEDIFF() 函数返回两个日期之间的天数。

    datepart 参数值:(表1-1)
    datepart
    缩写

    yy, yyyy
    季度
    qq, q

    mm, m
    年中的日
    dy, y

    dd, d

    wk, ww
    星期
    dw, w
    小时
    hh
    分钟
    mi, n

    ss, s
    毫秒
    ms
    微妙
    mcs
    纳秒
    ns

    例如:
    SELECT DATEDIFF(dd,'2012-5-17','2012-12-18') AS DiffDate
    复制代码

    结果:
    DiffDate
    1

    (二)、本周
    select * from mytable where
    DATEPART(wk, mydate)==DATEPART(wk,GETDATE()) and -- 周时间相等
    DATEPART(yy, mydate) = DATEPART(yy, GETDATE()) -- 年时间相等
    复制代码
    语法:DATEDIFF(datepart,date)
    意义:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

    datepart
    参数值:见表(1-1)。

    (三)、本月
    select * from mytable where
    DATEPART(mm, mydate)==DATEPART(mm,GETDATE()) and -- 月时间相等
    DATEPART(yy, mydate) = DATEPART(yy, GETDATE()) -- 年时间相等
    复制代码
    语法:DATEDIFF(datepart,date)
    意义:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

    datepart
    参数值:见表(1-1)。
    ...其它如上语法。

    总结

    希望本文对大家有用,如有好的建议欢迎留言补充,如果对您有用,请点击支持,谢谢
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月29日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码