怎么判断一个时间字段是另一个的次日18点以后

charlesxu 2014-02-11 10:45:05
比如一个销售单子,里面有订货时间和付款时间2个字段。想找出所有付款时间是订货时间次日18点以后的销售单

另外订货时间和付款时间都是毫秒值,比如2014-01-26 00:00:00是1390665600。

请问这样的sql怎么写?

select * from t_order t where t.pay_date = t.order_date + 多少毫秒值呢?
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingrou123 2014-02-11
  • 打赏
  • 举报
回复
select * from t_order t where t.pay_date > trunc(t.order_date+1)+18/24;
_拙计 2014-02-11
  • 打赏
  • 举报
回复
试试这样?
select *
  from t_order t
 where t.pay_date >
       (to_date(to_char(t.order_date / (1000 * 60 * 60 * 24) + 1 +
                        to_date('1970-01-01 08:00:00',
                                'YYYY-MM-DD HH:MI:SS'),
                        'YYYY-MM-DD') || ' 18:00:00',
                'YYYY-MM-DD HH24:MI:SS') -
       to_date('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS')) * 24 * 60 * 60 * 1000
CT_LXL 2014-02-11
  • 打赏
  • 举报
回复
引用 楼主 charlesxu 的回复:
比如一个销售单子,里面有订货时间和付款时间2个字段。想找出所有付款时间是订货时间次日18点以后的销售单 另外订货时间和付款时间都是毫秒值,比如2014-01-26 00:00:00是1390665600。 请问这样的sql怎么写? select * from t_order t where t.pay_date = t.order_date + 多少毫秒值呢?
这样不行吗?
select * from t_order t where t.pay_date > to_date(to_char(t.order_date+1,'yyyymmdd')||' 18:00:00','yyyymmdd hh:24:mi:ss')
_拙计 2014-02-11
  • 打赏
  • 举报
回复
引用 4 楼 charlesxu 的回复:
我数据库里存的是毫秒值,能不转变成时间格式就判断付款日期超过订货日期的隔天的18点吗?
我发的不是转成时间格式的了
charlesxu 2014-02-11
  • 打赏
  • 举报
回复
我数据库里存的是毫秒值,能不转变成时间格式就判断付款日期超过订货日期的隔天的18点吗?

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧