简体   繁体   中英

Converting decimal to Date

I have a column with dates formatted as decimals, for example: 20,210,830.

I want to convert this number to date format as 08/30/2021

I have tried to use convert and the database shoots me an error that convert is not a valid function. Cast seems to work but, only returns a null value every time.

This statement will validate:

SELECT CAST(CAST(CONTCLMPDTE AS VARCHAR(8)) AS DATE) 
FROM CMSFIL.JCTDSC AS COMPLDATE 

This statement works but, just outputs null. For background I am querying from a Db2 database.

My ultimate goal is to use this converted date to grab the difference from the current day.

Such as

DAY(CURRENT_DATE) - DAY(COMPLDATE)

Converting it to a date, you cqan do it like this

CREATE TABLE JCTDSC (
    CONTCLMPDTE varchar(10)
    
);


INSERT INTO JCTDSC VALUES ('20,220,830')
SELECT date(to_date(REPLACE(CONTCLMPDTE,',',''),'YYYYMMDD')) FROM JCTDSC AS COMPLDATE 
1
2022-08-30

fiddle

DATE (TO_DATE (CAST (20220830 AS CHAR (8)), 'YYYYMMDD'))

So after a long couple days and almost pulling my hair out, here is what worked for me.

SELECT date(substr(CONTCLMPDTE,1,4)||'-'||substr(CONTCLMPDTE,5,2)||'-'||substr(CONTCLMPDTE,7,2)) FROM JCTDSC WHERE COMPANYNUMBER={Company Number} AND JOBNUMBER={Job Number} LIMIT 1

This formatted from yyyymmdd to mm/dd/yyyy. It also worked for finding the days between current_date and CONTCLMPDTE using this code.

DAYS(CURRENT_DATE) - DAYS({COntract Compl Date Formatted})

Thank you all for your help!

The value just need to be converted into a string with a date format. Then you can use the date() function to convert to date.

create table qtemp/dec_vals (
        col1  decimal(8,0)  );

insert into qtemp/dec_vals
values (20200830),  (20200831),  (20200901),  (20200902),  (20200903),  (20200904),  (20200905),  (20200906);

select date(substr(char(col1), 5, 2) || '/' || substr(char(col1), 7, 2) || '/' || substr(char(col1), 1, 4))  from qtemp/dec_vals;

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