簡體   English   中英

將小數轉換為日期

[英]Converting decimal to Date

我有一列日期格式為小數,例如:20,210,830。

我想將此數字轉換為日期格式為08/30/2021

我嘗試使用 convert,但數據庫向我發送了一個錯誤,即 convert 不是有效的 function。 Cast 似乎有效,但每次只返回一個 null 值。

該聲明將驗證:

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

此語句有效,但僅輸出 null。 對於背景,我從 Db2 數據庫中查詢。

我的最終目標是使用這個轉換后的日期來獲取與當天的差異。

DAY(CURRENT_DATE) - DAY(COMPLDATE)

將其轉換為日期,您可以這樣做

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

小提琴

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

所以經過漫長的幾天,幾乎把我的頭發拉出來,這對我有用。

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

這從 yyyymmdd 格式化為 mm/dd/yyyy。 它還可以使用此代碼查找 current_date 和 CONTCLMPDTE 之間的日期。

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

謝謝大家的幫助!

該值只需轉換為具有日期格式的字符串。 然后您可以使用 date() function 轉換為日期。

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM