I just want to format current date into yyyymmdd in DB2.

I see the date formats available, but how can I use them?

SELECT CURDATE() FROM SYSIBM.SYSDUMMY1; 

I dont see any straightforward way to use the above listed formats.

Any suggestion?

5 Answers

SELECT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') FROM SYSIBM.SYSDUMMY1 

Should work on both Mainframe and Linux/Unix/Windows DB2. Info Center entry for VARCHAR_FORMAT().

3

One more solution REPLACE (CHAR(current date, ISO),'-','')

select to_char(current date, 'yyyymmdd') from sysibm.sysdummy1 

result: 20160510

2

This isn't straightforward, but

SELECT CHAR(CURRENT DATE, ISO) FROM SYSIBM.SYSDUMMY1 

returns the current date in yyyy-mm-dd format. You would have to substring and concatenate the result to get yyyymmdd.

SELECT SUBSTR(CHAR(CURRENT DATE, ISO), 1, 4) || SUBSTR(CHAR(CURRENT DATE, ISO), 6, 2) || SUBSTR(CHAR(CURRENT DATE, ISO), 9, 2) FROM SYSIBM.SYSDUMMY1 
2

Current date is in yyyy-mm-dd format. You can convert it into yyyymmdd format using substring function:

select substr(current date,1,4)||substr(current date,6,2)||substr(currentdate,9,2) 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy