Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

choose from a time period oracle sql

I have timestamp date format in column FIRST_DATE and i need to choose time period from a certain hour, for ex. all from 18:00 10.05.21 to 18:00 11.05.2021

the problem is that date column in timestamp format – FIRST_DATE:
10/05/2020 0:00:03,000000 TIMESTAMP(6)

so i tried to use it:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

select
count(*)
from TABLE
where to_char(FIRST_DATE, 'HH24:MI')>='18:00'

so with this way i was able to limit the start period by time, but if i add date to this my conditions stop working

and to_char(FIRST_DATE, 'DD-MON-YY')>='10-MAY-21'

how can i correct my script to select all from 18:00 10.05.21 to 18:00 11.05.2021

>Solution :

Don’t compare dates (or timestamps) with strings. '18:00' and '10-MAY-21' are strings. Use TO_TIMESTAMP with appropriate format mask, e.g. (lines #5 and 6):

SQL> with test (first_date) as
  2    (select to_timestamp('10/05/2020 23:00:03,000000', 'dd/mm/yyyy hh24:mi:ss,ff3') from dual)
  3  select *
  4  from test
  5  where first_date between to_timestamp('10/05/2020 18:00:00,000000', 'dd/mm/yyyy hh24:mi:ss,ff3')
  6                       and to_timestamp('11/05/2020 18:00:00,000000', 'dd/mm/yyyy hh24:mi:ss,ff3')
  7  /

FIRST_DATE
---------------------------------------------------------------------------
10.05.20 23:00:03,000000000

SQL>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading