Desol 2018-10-08 03:36 采纳率: 50%
浏览 1164
已结题

oracle 选择一段时间的内某一个时间点

在做一个酒店数据库的查询,输入了某房间入住时间3月12号以及离开的时间是4月12号,现在要求该房间3月26号的收入,
我写的是:
select sum(price) from room join booking on booking.hno = 'H001' where booking.datefrom > '26-MAR-1997'
and booking.dateto < '26-MAR-1997' 这样子得到的结果是null

![图片说明
!图片说明
通过入住日期和离开日期我们自己是可以知道客人3月26号也是在住的,但是如果不按照输入数据时的日期写,数据库就只会给出null,数据库是无法判断3月26号是不是属于3月12号到4月12号吗?求解

  • 写回答

5条回答 默认 最新

  • 四搭子咸鱼 2018-10-08 04:27
    关注

    后面用27号,这个默认按0点算

    评论
  • huwao 2018-10-08 17:01
    关注

    数据库能判断出来日期的范围,但是这个不影响我们查询结果的吧;根据你的问题,我想应该是只需要25-26号的总收入结果,因此修改一下查询语句拿到结果就好。你也可以试着再之前查询结果的前提下再查询这次所需要的结果,但是双重查询也是一个结果,还是分开查询比较效率。

    评论
  • 风子杨yxf771 2018-10-08 17:17
    关注

    oracle中的date类型的字段,在用做条件时,最好还是用to_date函数,如:to_date('你的时间条件','yyyy-mm-dd hh24:mi:ss'),这样比较严谨。而且还可以将时间条件限定到秒。

    评论
  • fish_dream 2018-10-08 19:21
    关注

    booking.datefrom > '26-MAR-1997'
    and booking.dateto < '26-MAR-1997'
    这个条件不对,>= 试试

    评论
  • 编程爱好者熊浪 2018-10-11 19:51
    关注

    因该是你的price存在null或者空不为数字的值,先不要用count,看下数据是否存在空或者null如果存在,就使用 COUNT(CASE WHEN PRICE=NULL OR PRICE='' THEN 0 ELSE PRICE END),不过最好通过后面的条件排除price为空或者null的。

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 宝塔面板一键迁移使用不了
  • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
  • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
  • ¥20 四叉树的创建和输出问题
  • ¥15 javaweb连接数据库,jsp文件加载不出来
  • ¥15 matlab关于高斯赛德尔迭代的应用编撰。(相关搜索:matlab代码|迭代法)
  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部