oracle中获取当月,Oracle - 获取当月的前3天记录

你可以得到当月​​的第一天,使用MM日期格式元素。

select to_char(trunc(sysdate, 'MM'), 'YYYY-MM-DD Hh24:MI:SS') from dual;

TO_CHAR(TRUNC(SYSDA

-------------------

2017-06-01 00:00:00

然后可以使用日期计算以添加天数或表示数的间隔,以获得每月第四天:

select to_char(trunc(sysdate, 'MM') + 3, 'YYYY-MM-DD Hh24:MI:SS') from dual;

TO_CHAR(TRUNC(SYSDA

-------------------

2017-06-04 00:00:00

如果你想要的数据高达那第四天开始,即达到23:59:59 3日,你可以看看值小于午夜4日:

select * from test.purchase

where create_ts >= trunc(sysdate, 'MM')

and create_ts < trunc(sysdate, 'MM') + 3;

您可以使用between,但因为这是包容性的,所以您需要在第3次指定绝对最新时间 - 检查列是日期还是时间戳,可能会更改,并且可能会有点混淆。如果您使用between trunc(sysdate, 'MM') and trunc(sysdate, 'MM') + 3,那么您将在4日午夜时包含任何记录,这不是您想要的。我发现使用>=和

如果列实际上是一个时间戳,那么你可以投的计算日期时间戳太,和/或上限的使用间隔:

select * from test.purchase

where create_ts >= cast(trunc(sysdate, 'MM') as timestamp)

and create_ts < cast(trunc(sysdate, 'MM') + 3 as timestamp);

...或:

...

and create_ts < cast(trunc(sysdate, 'MM') as timestamp) + interval '3' day;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值