美文网首页
SQL语句:between关键词的使用

SQL语句:between关键词的使用

作者: 我就要取名叫夏末 | 来源:发表于2019-01-15 18:25 被阅读0次

今天使用oracle数据库写SQL,需要查询两个时间内的特定数据之和
用到了sum函数和between函数

关于sum函数的了解:
todo:待添加

关于between函数:
使用方法:

between关键词使用方法.png
感谢
https://blog.csdn.net/hpdlzu80100/article/details/80767524

1、sql语句中between的边界:
有如下数据库:


sum函数与between函数数据库图.jpg

使用如下sql语句查询001-024这个设备在2018-08-01~2018-08-02分别的工作时长:

SELECT
     RUNNING_TIME 
FROM
    "T_EQ_SCADA_RUNNING_TIME" 
WHERE
    code = '001-024' AND working_date BETWEEN 
to_date( '2018-08-01', 'yyyy-mm-dd' ) 
AND 
to_date('2018-08-02','yyyy-mm-dd')

结果如下:

查询001-024在2018-08-01~2018-08-02的工作时长.jpg
证明在oracle中,between是包含左右全闭区间的。
暂时只在oracle中验证,其他数据库经查阅资料:
在mysql数据库中:
https://blog.csdn.net/u010339647/article/details/52425389

待测试内容:
https://blog.csdn.net/lijunjie818/article/details/72416986
当我们修改001-024的设备,使它的时间为2018-08-02,0点多一秒时:

修改001-024的2018-08-02时间为0点多一秒.jpg
查询结果不包含2018-08-02零点过一秒的数据:
查询结果不包含001-024在2018-08-02零点过一秒的数据.jpg
所以sql语句中between查询时,如果是yyyy-mm-dd格式的,会默认为该日的00:00:00,超过时间则都不在该区间内

那么问题来了:not between 呢?
我们查询001-024不在2018-08-01~2018-08-02的工作时长,最终查询结果:


查询001-024不在2018-08-01~2018-08-02的工作时长.jpg

查到了001-024设备在2018-08-03工作时长。
所以答案是不包含,左右全开区间。

2、between时间的格式问题
在between后的日期,

SELECT
     RUNNING_TIME 
FROM
    "T_EQ_SCADA_RUNNING_TIME" 
WHERE
    code = '001-024' AND working_date BETWEEN '2018-08-01' AND '2018-08-02'

则会报 Oracle 异常 ORA-01861: literal does not match format string(字符串格式不匹配)
问题在于直接写入了字符串格式,数据库不识别
应使用如下语句:

to_date( '2018-08-01', 'yyyy-mm-dd' ) AND to_date('2018-08-02','yyyy-mm-dd')

感谢:
解决:Oracle 异常 ORA-01861: literal does not match format string(字符串格式不匹配)
https://blog.csdn.net/qq122261257/article/details/8613735/

相关文章

  • SQL语句:between关键词的使用

    今天使用oracle数据库写SQL,需要查询两个时间内的特定数据之和用到了sum函数和between函数 关于su...

  • 2018-04-25 MySQL

    1、where语句:还可以和between、in、not in 、LIKE(通配符是_和%:SQL模式时,不能使用...

  • java 22

    SQL语句 查询select ··from ··where··like··between ·· and ··as ...

  • mybatis中#与$的使用区别

    关键词,预编译,防sql注入,动态sql 我们在使用mybatis中编写sql语句的时候,经常会使用#或者$来取值...

  • SQL语句的优化

    sql语句的优化:多使用共享语句 尽量使你的sql语句能够使用索引。怎样使sql语句能够使用到索引呢:当sql语句...

  • SQL语句基本使用

    SQL语句基本使用——增删改查 SQL语句基本使用——WHERE子句 SQL语句基本使用——AND和OR的使用 S...

  • 5数据库sql语句

    [TOC] SQL语句 1.使用SQL语句插入数据 在SQL语句的编辑区域,我们使用insert语句向数据表当中插...

  • oracle 存储过程执行动态sql实例

    1 概述 oracle的动态sql是指在语句块使用execute immediate 执行sql语句,sql语句可...

  • 第十三章 使用动态SQL(三)

    第十三章 使用动态SQL(三) 执行SQL语句 有两种使用%SQL.Statement类执行SQL语句的方法: %...

  • java.util.Date和java.sql.Date的区别及

    java.util.Date 就是在除了SQL语句的情况下面使用 java.sql.Date 是针对SQL语句使用...

网友评论

      本文标题:SQL语句:between关键词的使用

      本文链接:https://www.haomeiwen.com/subject/gwgydqtx.html