2

In DB I have TIMESTAMP datatype like 17/06/21 12:33:47,879000000 and I would like to select in format 2017-06-21T12:33:47.879

Edit: I tried to_char(MODIFIED_TIME,'YYYY-MM-DD HH:MI:SS:FF') but getting

2010-11-12 11:47:50:294000. How can I add this 'T' and cut these '0' at the end of milliseconds?

Barbaros Özhan
  • 59,113
  • 10
  • 31
  • 55
pqa1222
  • 75
  • 1
  • 8

1 Answers1

2

You can use such a formatting model :

SELECT TO_CHAR( systimestamp ,'yyyy-mm-dd"T"HH24:MI:SS.FF') AS ts
  FROM dual;

 TS
 -----------------------
 2020-08-26T09:51:25.600016

or

SELECT TO_CHAR( timestamp'2017-06-21 12:33:47.879000000', 'yyyy-mm-dd"T"HH24:MI:SS.FF' )  
    AS ts
  FROM dual;

 TS
 -----------------------
 2017-06-21T12:33:47.879000000

for a spesific date and time.

Alternatively use

SELECT TO_CHAR( timestamp'2017-06-21 12:33:47.879000000', 'yyyy-mm-dd"T"HH24:MI:SS.FF3' ) AS ts,
       CAST( timestamp'2017-06-21 12:33:47.879000000' AS TIMESTAMP(3) ) As ts2
  FROM dual;

 TS                        TS2
 -----------------------   -----------------------
 2017-06-21T12:33:47.879   2017-06-21T12:33:47.879

to get precision set to 3 for milliseconds portion.

Barbaros Özhan
  • 59,113
  • 10
  • 31
  • 55