【发布时间】:2018-05-10 07:36:21
【问题描述】:
我的表格中有日期为stored as decimal years。一个例子是2003.024658,它转换为January 9, 2003。
我想将十进制年份转换为 Oracle 的日期格式。
我发现有人在 Excel 中完成了这项工作:Decimal year to date formula?
=DATE(INT(B1),1,MOD(B1,1)*(DATE(INT(B1)+1,1,1)-DATE(INT(B1),1,1)))
但是,我不太清楚如何将逻辑转换为 Oracle PL/SQL。
【问题讨论】:
-
你能解释一下
2003.024658转换成January 9, 2003背后的逻辑吗? -
SELECT TO_DATE ('31-DEC-2002') + (0.024658 * 365) FROM DUAL给出输出09-Jan-2003。 -
不需要。如果它对你有帮助,那就足够了。
-
请“接受”这个答案,以便其他想要答案的人知道有一个答案,或者那些寻求提供答案的人不会失望。
-
如果您希望答案准确,这将取决于最初记录值的人最初是如何计算小数部分 (
0.024658) - 例如在一个简单的 365 天/年,或者像 365.24 这样的平均估计值,或者可能是其他一些方案。
标签: sql oracle date date-format oracle12c