【问题标题】:How to select rows from 2 timestamps at determined hour?如何在确定的时间从 2 个时间戳中选择行?
【发布时间】:2014-01-24 22:47:02
【问题描述】:

我正在尝试弄清楚如何获取具有 2 个时间戳的数据...在上下文中我需要的是

我需要获取昨天下午 4 点到今天下午 4 点之后插入的所有行...

我在想这样的事情......

and (transaction_date between to_char(current_timestamp-1, 'DD/MM/YY 16:00:00') and to_char(current_timestamp, 'DD/MM/YY 16:00:00'))

但它告诉我

ORA-01821: 没有重新认识的格式 01821. 00000 - “日期格式无法识别” *原因:
*行动:

我的 transaction_date 字段是一个时间戳字段

有什么想法吗?

谢谢

【问题讨论】:

  • transaction_datedate 吗?还是timestamp?这是两种不同的数据类型。在这里混合两者似乎没有任何意义。
  • 你好@JustinCave 是的,transaction_date 是一个时间戳
  • 只是一个普通的timestamp?不是timestamp with time zonetimestamp with local time zone?您选择一个强烈暗示数据是 date 而实际上是 timestamp 的列名是否有原因?
  • 是的,它有本地时区,(TIMESTAMP(6) WITH LOCAL TIME ZONE),一行的例子是“21/01/14 06:49:57,900573000”嗯是的,我选择这个是因为对我来说,这是插入行的日期,包括时间,我不想将其命名为“transition_timestamp”:)...
  • 尽管如此@JustinCave 你又救了我的命,它起作用了,这是我需要的,非常感谢你,我欠你一杯啤酒,再见! :)

标签: sql oracle date timestamp


【解决方案1】:

假设transaction_datedate

transaction_date BETWEEN trunc(sysdate-1) + interval '16' hour -- Yesterday at 4pm
                     AND trunc(sysdate) + interval '16' hour   -- Today at 4pm

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2016-02-16
    • 2020-09-09
    • 1970-01-01
    • 2013-10-18
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多