V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaodada
V2EX  ›  Oracle

万能的 v 友们 oracle 时间查询求助

  •  
  •   chaodada · 2019-03-14 10:27:30 +08:00 · 2592 次点击
    这是一个创建于 2081 天前的主题,其中的信息可能已经有所发展或是发生改变。

    select * from 表名 t where trunc(t.提交时间) between trunc(sysdate-1) and trunc(sysdate-1)

    进行时间段查询
    但是 “提交时间” 这个字段在数据库存储的是 13-MAR-19 这种类型 , 我前端传来的数据是这样的 2019-03-14 我应该在语句中怎么写呢 本人小白。。

    3 条回复    2019-03-14 11:13:41 +08:00
    l00t
        1
    l00t  
       2019-03-14 10:49:35 +08:00
    你先别管它存的形式是什么,先关心下它这个字段是什么类型。
    chaodada
        2
    chaodada  
    OP
       2019-03-14 11:03:31 +08:00
    @l00t 大佬时间是 DATE 类型 。。。
    l00t
        3
    l00t  
       2019-03-14 11:13:41 +08:00
    时间类型就直接统一成时间类型来用,不用管形式。

    考虑到你是小白,我给你例子:

    select * from 表名 t where t.提交时间 between sysdate-1 and sysdate;

    你上面那几个 trunc 真的没问题吗?本身你给的时间就是到天,sysdate 默认也是到天,你再 trunc 一下还是到天,没有任何意义啊。你的 between 条件里两个都是 sysdate -1, 你也再看看到底对不对。如果你的 between 里面有一个是你前端来的数据,那你怎样写:


    select * from 表名 t where t.提交时间 between to_date('2019-03-14', 'yyyy-mm-dd') and sysdate;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2710 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:50 · PVG 17:50 · LAX 01:50 · JFK 04:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.