[英]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.