zoukankan      html  css  js  c++  java
  • SQL SERVER Date列和Time列合并成一列处理报表数据

    问题原由:

    intouch项目中,利用intouch脚本来存储数据时,存入的时间格式为:date,time分开存储。在报表需求中,有需要利用查询两个时间段之间的数据。

    问题解决:

    1.直接写脚本(写出的脚本有bug)

    表结构如下:

    select * from 在线数据日报表
    where(convert(char(10),date,120)>='2018-10-30' and time>='18:00:00') 
    and (convert(char(10),date,120)<='2018-11-1' and time<='23:00:00')

    bug产生的原因:time也是关键字,我想去10.30到11.1之间所有的时间点,因为time位于18:00:00和23:00:00,所以取出来的数为10.30和11.1两天内,18点到23点的所有数据。不符合设想。

    2.利用视图整合

    没有其他办法,只能将date列和time列整合成为datetime列,然后再进行sql筛选。

    2.1新建视图

    SELECT  CONVERT(varchar(30), date) + ' ' + CONVERT(varchar(30), time) AS datetime1, id, CSLJ
    FROM      dbo.在线数据日报表

    3.效果测试

    select * from 水量计算
    where (convert(char(30),datetime1,120)>='2018-10-30 18:00') and (convert(char(30),datetime1,120)<='2018-11-1 23:00')
    GO

    测试基本达到效果,实现两个时间段之间的数据查找。

  • 相关阅读:
    9"边界匹配
    8劈分
    7替换
    5逻辑匹配
    4分组匹配
    3贪婪匹配与勉强匹配
    python多线程之线程传参
    多线程(类的形式)---线程同步
    多线程基础
    Linux----黑马程序员Linux教学视频简记(转载)
  • 原文地址:https://www.cnblogs.com/cache-yuan/p/10104238.html
Copyright © 2011-2022 走看看