简体   繁体   中英

AM/PM Conversion For Date Time

I've a very basic requirement that I did earlier but for now unable to resolve it. I've a table in database that stores in and out time as the following format:

8/18/2019 8:00:00 AM

So what I want is to convert the above into the below format:

8/18/2019 8:00:00 PM

Nothing complex here, just to convert from AM to PM . I tried something like this but not getting the exact result:

SELECT TO_DATE(TO_CHAR(M.IN_TIME, 'MM/DD/YYYY HH:MI:SS'), 'MM/DD/YYYY HH12:MI:SS PM') IN_TIME FROM Table m
WHERE M.DATE = '31-AUG-2019';

Anything that I missed here? Would appreciate if someone points out.

First of all, dates are stored in the internal format so you can not change it using what you are doing. What you see in database is the dates converted into the string.(human readable format)

You can try the following to achieve what you want:

SELECT CASE WHEN TRUNC(IN_TIME) + (12/24) > IN_TIME THEN
IN_TIME + (12/24) 
ELSE IN_TIME END
 AS IN_TIME_CONVERTED
FROM TABLE M
WHERE ....

This query will convert only dates before noon to equivalent in PM.

Cheers!!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM