根据年,月和日创建日期

阿尔瓦罗·冈萨雷斯(Alvaro Gonzalez)

Oracle是否具有内置功能来根据其各个组成部分(年,月和日)创建仅对缺失数据返回null的日期?

我知道,TO_DATE()但是我需要首先编写一个字符串,并且||运算符和CONCAT()函数都无法轻松处理丢失的数据:

-- my_year NUMBER(4,0) NULL
SELECT TO_DATE(my_year || '-01-01', 'YYYY-MM-DD') AS my_date
FROM my_table;

只要my_yearNULL我们最终TO_DATE('-01-01', 'YYYY-MM-DD')和:

ORA-01841: (full) year must be between -4713 and +9999, and not be 0
戈登·利诺夫(Gordon Linoff)

例如,您可以使用case

select (case when my_year is not null and my_year <> 0 and
                  my_year between -4713 and 9999
             then TO_DATE(my_year || '-01-01', 'YYYY-MM-DD')
        end)

不幸的是,Oracle没有一种方法(如果可能)进行转换,否则将返回NULL。SQL Server最近try_convert()为此目的而引入

一种选择是为失败的转换编写带有异常处理程序的函数。异常处理程序只会返回NULL错误的格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建日期的数字限制;年,月和日

来自分类Dev

用年和月构造日期

来自分类Dev

获取日期差异和输出:年-月

来自分类Dev

MySQL 日期介于月和年之间

来自分类Dev

使用“月-年”日期值和时间线创建D3.js散点图

来自分类Dev

如何创建以年和月命名的目录

来自分类Dev

从月,日和年创建NSDate

来自分类Dev

如何为连续和非连续日创建索引

来自分类Dev

获取年,月和日SQL中的日期差

来自分类Dev

将日期时间列分为年,月和周

来自分类Dev

在单独的列中获取最大日期(月和年)

来自分类Dev

MySQL如何获取月和年与日期格式分隔

来自分类Dev

比较mysql中分别存储日,月和年的日期

来自分类Dev

需要计算截止日期的年,月和日

来自分类Dev

如何从日期中提取日,月和年?

来自分类Dev

年列和月列进入日期列R

来自分类Dev

将年和月转换为日期格式

来自分类Dev

试图获取当前日期仅为月,日和年

来自分类Dev

如何从年,月和日获取日期对象?

来自分类Dev

在分开的列中获取最大日期(月和年)

来自分类Dev

需要计算截止日期的年,月和日

来自分类Dev

将年、月和日转换为日期时间

来自分类Dev

从出生日期开始的年、月和日表

来自分类Dev

如何显示自日期以来的年、月、周和日

来自分类Dev

基于开始和结束日期的年/月记录返回金额

来自分类Dev

PHP 创建年和月的多层数组

来自分类Dev

单击跨度日期日历,专注于按日创建的日期选择器

来自分类Dev

PANDAS粗略日期(月/年)

来自分类Dev

PostgreSQL,根据另一列添加(年,月或日)日期