繁体   English   中英

如何在Oracle SQL Developer中将数字转换为日期

[英]how to convert a number to date in oracle sql developer

我有一个需要导入表的Excel格式数据集,一列是日期,但是数据以数字格式存储,例如41275,在导入数据时,我尝试选择数据格式yyyy-mm-dd,它给出了一个错误:不是有效的月份,还尝试了MM / DD / YYYY也会出错:月份中的某天必须介于1和月份中的最后一天之间。 有谁知道这个数字是什么,将其导入数据库时​​如何将其转换为日期格式?

您要查找的表达式(关于Excel的leap年错误AmmoQ提到)是:

case
    when yourNumberToBeImported <= 59 then date'1899-12-31' + yourNumberToBeImported
    else date'1899-12-30' + yourNumberToBeImported
end

那你要么

  • 在Oracle DB中创建一个(全局)临时表,将数据从Excel加载到表中,然后将包含上述计算的数据从临时表重新加载到目标表中。

或者你可能

  • 将数据从Excel加载到Oracle DB中的持久表,并在持久表上创建一个视图,其中将包含上述计算。

您得到的数字是某个日期的excel表示...

excel将日期存储为天数,从特定日期开始计算……确切地说:

1 = 1900年1月1日
2 = 1900年1月2日
...
30 = 1900年1月30日

因此,要将您的excel编号输入一个oracle日期,您可能想要尝试这样的事情...

to_date('1899-12-31','yyyy-mm-dd') + 41275 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM