0

我正在使用这个查询:

  SELECT ts as "TimeStamp", 
         stat as "Status"
    FROM myTable
   WHERE stat = 'O'
     AND source = 'Source1'
     AND ts BETWEEN TO_TIMESTAMP('2013-10-05','yyyy-mm-dd') AND
                    TO_TIMESTAMP('2013-10-06','yyyy-mm-dd') 

并且还尝试过:

  SELECT ts as "TimeStamp", 
         stat as "Status"
    FROM myTable
   WHERE stat = 'O'
     AND source = 'Source1'
     AND ts >= TO_TIMESTAMP('2013-10-05','yyyy-mm-dd') AND ts <
                    TO_TIMESTAMP('2013-10-06','yyyy-mm-dd') 

它返回 0 条记录,但如果我这样做

  SELECT ts as "TimeStamp", 
         stat as "Status"
    FROM myTable
   WHERE stat = 'O'

我可以清楚地识别出 5 条记录。显然TO_TIMESTAMP工作不正常我希望有人能够帮助确定正确的修复

编辑:澄清一下,我只想要 10/5 的时间范围,不包括 10/6 抱歉粘贴了错误的结果而且该字段的类型为 TIMESTAMP(6)

4

2 回答 2

4

因为即使您没有指定 TO 时间戳也有时间。所以它只选择到最后一天的开始。根据需要指定时间 23:59:59 和亚秒,或者少于第二天。

...
AND ts >= TO_TIMESTAMP('2013-10-05','yyyy-mm-dd') 
AND ts <  TO_TIMESTAMP('2013-10-07','yyyy-mm-dd') 
于 2013-10-11T14:50:16.487 回答
0

尝试: AND ts BETWEEN TO_DATE('2013-10-05','YYYY-MM-DD') AND TO_DATE('2013-10-06','YYYY-MM-DD')

请注意,如果您未指定 HH MI SS 掩码,它将为您提供从 00:00:00 的 10-05 到 00:00:00 的 10-06 的结果。

日期掩码区分大小写,TO_DATE 会更好。

于 2013-10-11T14:51:26.567 回答