others - sql - 如何使用TO_DATE函数处理null值?

我想创建DATETIME,但是,在某些情况下有一部分是null值。

示例


SELECT TO_DATE(STARTDATEMONTH||'-01-'||STARTDATEYEAR, 'MM-DD-YYYY' ) AS BEGIN_DATE FROM V_MYCC_CNPHISTORY_03



当STARTDATEMONTH列为空时,

获取到无效月份

如果值为空,我想设置默认值,有解决方法吗?

先谢谢了

时间:

使用coalesce:


select TO_DATE(coalesce(STARTDATEMONTH,'01')||'-01-'||coalesce(STARTDATEYEAR, '2019'), 'MM-DD-YYYY' ) AS BEGIN_DATE


from Mytable



Coalesce和nvl是相似的,但是coalesce对ansi友好,并在找到值时终止。注意,值必须是相同的数据类型,例如:


coalesce(stringvalue1, stringvalue2)



使用coalesce()


SELECT TO_DATE(COALESCE(STARTDATEMONTH, '01') || '-01-' || COALESCE(STARTDATEYEAR, '2000')), 'MM-DD-YYYY' ) AS BEGIN_DATE


FROM V_MYCC_CNPHISTORY_03



你可以试试这个-


SELECT TO_DATE(NVL(STARTDATEMONTH,'01')||'-01-'||NVL(STARTDATEYEAR,'2019'), 'MM-DD-YYYY' ) AS BEGIN_DATE 


FROM V_MYCC_CNPHISTORY_03



...