Oracle比较两个不同的日期

时间:2014-07-16 07:07:09

标签: sql oracle

以下查询无法从java执行。在这里我使用oracle xe server

datetrx <= to_date('2014-07-16 00:00:00.0','yyyy/mm/dd hh24:mi:ss.f')

datetrx的日期格式为dd / mm / yyyy

2 个答案:

答案 0 :(得分:3)

to_date()功能中的输入字符串与您的模式不匹配。该值包含-作为分隔符,但在您使用的模式中/

如果您对齐输入格式和模式,这应该有效:

datetrx <= to_date('2014-07-16 00:00:00','yyyy-mm-dd hh24:mi:ss')

我个人比to_date()函数更喜欢ANSI时间戳文字,因为它们是可移植的并且输入的次数较少:

datetrx <= timestamp '2014-07-16 00:00:00'

请注意,此处提供的字符串格式始终 ISO格式。


旁注:
任何&#34;格式&#34;在查看列daterx中的值时,您会看到用于显示该数据的SQL客户端(SQL * Plus,SQL Developer,...)。

值本身在服务器上存储而没有格式。 SQL客户端(或您的应用程序)总是

完成<{1}}值的格式化:

答案 1 :(得分:0)

请说明你的问题,很难弄清楚你想要什么... 首先,这不是经过验证的日期格式

只需输入并尝试使用DUAL:

SELECT  to_date('2014-07-16 00:00:00.0', 'YYYY/MM/DD HH24:MI:SS.F') 
FROM dual;

删除&#39; .F&#39;部分来自它