当前位置: 首页 > 知识库问答 >
问题:

时间戳和日期给出错误ora-01852之间的比较

罗飞宇
2023-03-14

有一个表的日期列类型为VARCHAR2。此字段中的值格式为:2013-12-19T12:12:23.345000000Z我必须找出两个连续日期之间的差异。但是由于日期是字符串格式的,我首先将其转换为时间戳。我使用以下查询进行相同的查询。

 select dccontextid,
        to_timestamp(substr(cdate,1,10)||' '||substr(cdate,12,12),'yyyy-mm-dd hh24:mi:ss.ff')
   from cam6eng.ttestcolorproc_wd
  where to_timestamp(substr(cdate,1,10)||' '||substr(cdate,12,12),'yyyy-mm-dd hh24:mi:ss.ff') between :StartDate and :EndDate

如果在不包括where子句的情况下运行上述查询,它将显示正确的时间戳值。但是当我把where子句放进去的时候,它给出了错误ORA-01852秒必须在0到59之间。(这是因为有些记录second=59,fraction=一些非零值)

什么可以解决这个问题?

共有1个答案

岳英锐
2023-03-14

时间戳转换似乎没问题:

select to_timestamp(substr('2013-12-19T12:12:23.345000000Z', 1, 10) || ' ' ||
                    substr('2013-12-19T12:12:23.345000000Z', 12, 12)
                   ,'yyyy-mm-dd hh24:mi:ss.ff')
  from dual

问题可能是与时间戳进行比较的值。:startdate和:enddate。你认为这些是什么样的价值观?

 类似资料:
  • 问题内容: 全部, 我有一个带有称为时间戳记的列的MYSQL表。它的数据类型为“ 10/1/2009 3:25:08 PM”,“ 10/1/2009 3:30:05 PM”,“ 10/4/2009 3:40:01 PM”,等等.. 我想编写一个SQL查询来选择在两个日期之间出现的时间戳字段中的所有值。 userInput日期将没有时间部分。您能为此建议正确的MySQL查询语法吗?谢谢 问题答案:

  • 我正在为我的聊天应用程序使用firebase。在聊天对象中,我使用方法添加时间戳。 请就这个问题提出解决办法

  • 我有以下应该返回时间戳的函数。当使用以下斜杠以字符串格式输入日期时,此代码有效:“2019/3/4”,但在使用 怎么回事?

  • 问题内容: 我必须比较hibernatehql查询中的两个日期。我在我的Java bean中使用java.util.Date,并在MySQL数据库中将时间戳用作数据类型。 上面的查询将时间与日期进行比较。我应该怎么做才能在没有时间的情况下比较上述查询中的日期。 问题答案: 有关可用的日期功能,请参见Hibernate文档。 http://docs.jboss.org/hibernate/orm/3

  • 然后将变量持久化到MySQL表列中。 然而,虽然通过调试,我看到对象显示在正确的时区GMT+1,但在数据库上持久化时,它是一个GMT时区,所以要追溯一个小时。 使用函数返回一个GMT+1日期。 连接字符串为,没有任何参数。 编辑:找到这段代码

  • 问题内容: 我想使用JSON从Python发送序列化形式的datetime.datetime对象,并使用JSON在JavaScript中反序列化。做这个的最好方式是什么? 问题答案: 你可以在中添加参数来处理此问题: 这是格式。 更全面的默认处理程序功能: