Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
243 views
in Technique[技术] by (71.8m points)

sql - Oracle compare two different dates

The following query cant execute from java . Here i use oracle xe server

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

datetrx is in the date format of dd/mm/yyyy

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your input string in the to_date() function does not match your pattern. The value contains - as the delimiter, however in the pattern you use /:

If you align your input format and the pattern, this should work:

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

I personally prefer ANSI timestamp literals over the to_date() function because they are portable and it's less typing:

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

Note the format the string supplied here is always the ISO format.


A side note:
Any "format" you see when looking at the values in the column daterx is applied by the SQL client you use to display that data (SQL*Plus, SQL Developer, ...).

The value itself is stored without a format on the server. Formatting of a DATE value is always done by the SQL client (or your application):


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...