簡體   English   中英

SQL更改結果長度或時間格式

[英]Sql change the result length or time format

我的數據庫是Oracle,我使用navicat查詢數據。

我的代碼如下:

select 

        jzmktr.VPRONAME as jzmktrvproname, 
        jzbid.vproname as jzbidvproname,
        jzbid.vprolocus as jzbidvprolocus,
        jzcur.vname as jzcurvname,
        doc.name as docname,
        zspm.def2 as zspmdef2,
        oa.name as oaname,
        zspm.def6 as zspmdef6,
        zspm.def4 as zspmdef4,
        zpus.def3 as zpusdef3,
        jzbidt.dstartdate as jzbidtdstartdate,
        jzbidt.dcompletedate as jzbidtdconpletedate,
                zspm.def4 as zspmdef4,
        jzcur.PK_GROUP

from JZMKT_REGISTER jzmktr 
left join  JZCU_REGISTER jzcur
on jzcur.PK_REGISTER = jzmktr.pk_customer
left join JZBID_VENDSTART jzbid
on jzmktr.PK_MKTREGISTER = jzbid.PK_MKTREGISTER
left join jzbid_hitbidlog hit 
on hit.pk_vendstart = jzbid.pk_vendstart
left join ZSPM_MAK_EXPLANATION zspm
on zspm.def16 = hit.pk_hitbidlog
left join zspm_pub_uf_singlehead_h zpus 
on zpus.def1 = jzmktr.PK_MKTREGISTER
left join JZBID_TENDERCHK jzbidt 
on jzbidt.pk_vendstart = jzbid.pk_vendstart 
left join bd_defdoc doc 
on doc.pk_defdoc = jzbid.pk_operatetype
left join org_adminorg oa 
on oa.pk_adminorg = zspm.def5
where jzmktr.dr='0' and jzmktr.FSTATUSFLAG='1'

您可以看到快照,這是sql執行結果, jzbidtdstartdatejzbidtdconpletedate的時間格式為yyyy-MM-dd HH:mm:ss

在此處輸入圖片說明

如何將時間格式設置為yyyy-MM-dd


編輯

如果我將jzbidtdstartdate更改為:

to_char(jzbidt.dstartdate,  'yyyy-MM-dd') as jzbidtdstartdate,

我會收到此錯誤:

on doc.pk_defdoc = jzbid.pk_operatetype  
left join org_adminorg oa   
on oa.pk_adminorg = zspm.def5  
where jzmktr.dr='0' and jzmktr.FSTATUSFLAG='1'  
--and jzmktr.pk_org in (parameter('param3'))  
  --       and substr(jzmktr.dbilldate,1,10)>=parameter('param1')  
    --     and substr(jzmktr.dbilldate,1,10)<=parameter('param2')  
[Err] ORA-01722: invalid number  

UPDATE

我在數據庫中搜索jzbidt.dstartdate ,它是CHAR類型。

在您的SQL select子句中,將列從jzbidt.dstartdate更改為to_char(jzbidt.dstartdate, 'YYYY-MM-DD')以獲取所需格式的日期(假定它是date類型)。

由於它是char類型的,因此只需要執行一個子字符串,所以substr(jzbidt.dstartdate, 0,10)可以正常工作。

如果jzbidt.dstartdateCHAR ,則應將char轉換為date ,然后格式化日期:

to_char(to_date(jzbidt.dstartdate, 'yyyy-MM-dd hh24:mi:ss'), 'yyyy-MM-dd'),

暫無
暫無

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

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