相关疑难解决方法(0)

由于DST,Oracle日期比较已损坏

我们一直在调试从通过Hibernate运行Java的应用服务器执行的SQL查询的问题.错误:

[3/10/14 10:52:07:143 EDT] 0000a984 JDBCException W org.hibernate.util.JDBCExceptionReporter logExceptions SQL Error: 1878, SQLState: 22008
[3/10/14 10:52:07:144 EDT] 0000a984 JDBCException E org.hibernate.util.JDBCExceptionReporter logExceptions ORA-01878: specified field not found in datetime or interval
Run Code Online (Sandbox Code Playgroud)

我们已经能够将其缩小到下面的简单SQL.

select * 
from MY_TABLE T
where T.MY_TIMESTAMP >= (CURRENT_TIMESTAMP - interval '1' hour );
Run Code Online (Sandbox Code Playgroud)

当我们在同一个数据库中运行它时,我们得到错误:

ORA-01878: specified field not found in datetime or interval
01878. 00000 -  "specified field not found in datetime or interval"
*Cause:    The specified field was not found in the datetime or interval.
*Action: …
Run Code Online (Sandbox Code Playgroud)

oracle timezone timestamp dst

22
推荐指数
2
解决办法
2万
查看次数

如何在Oracle中存储日期?

如何在Oracle中存储日期?例如,我知道大多数系统使用大纪元时间来确定它的时间.通过计算1970年1月1日之后的秒数.甲骨文也这样做了吗?

我问这个的原因是我注意到如果你在Oracle中使用两个日期并减去它们,你会得到一个浮点数,它们介于两者之间.

(Sysdate - dateColumn)
Run Code Online (Sandbox Code Playgroud)

会返回这样的东西(取决于时间)

3.32453703703703703703703703703703703704
Run Code Online (Sandbox Code Playgroud)

现在,Oracle正在进行转换和吐出格式化,或者Oracle存储日期与特定时间段之外的天数?(像大纪元一样)

oracle date

14
推荐指数
3
解决办法
2万
查看次数

如何以我想要的格式获取此时间戳,Oracle SQL

我首先运行以下命令,并得到以下结果:

select to_char(systimestamp, 'YYYY-MM-DD HH24:MI:SS') from dual;

TO_CHAR(SYSTIMESTAM
-------------------
2018-07-10 10:21:40
Run Code Online (Sandbox Code Playgroud)

这是我想要存储TIMESTAMP对象的格式。

但是,当我将其转换回来时,它不是我想要的格式:

select to_timestamp(to_char(systimestamp, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') from dual;

TO_TIMESTAMP(TO_CHAR(SYSTIMESTA
-------------------------------
10-JUL-18 10.21.40.000000000 AM
Run Code Online (Sandbox Code Playgroud)

实际上,将 2018 更改为末尾,将 07 设置为“JUL”,现在 10 位于最前面。时间也用点分隔,有很多 0 和一个 AM。

我怎样才能解决这个问题?我是 SQL 开发的新手,所以我不确定格式。

非常感谢

sql oracle timestamp

1
推荐指数
1
解决办法
9893
查看次数

标签 统计

oracle ×3

timestamp ×2

date ×1

dst ×1

sql ×1

timezone ×1