【问题标题】:Oracle Julian day of year甲骨文儒略日
【发布时间】:2014-09-06 15:52:34
【问题描述】:

如何在 Oracle 数据库中选择儒略日?

我试过了: 从对偶中选择 to_char(sysdate, 'J'); 这给了我自公元前 4712 年 1 月 1 日以来的天数。但我需要自 1.1 以来的天数。当年的。

【问题讨论】:

    标签: sql oracle julian-date


    【解决方案1】:

    如果您查看TO_CHAR (datetime) 文档,您将获得指向"Format Models" 的链接,其中包含可用格式的完整列表。我猜你想要这个:

    DDD 一年中的某天 (1-366)

    【讨论】:

    • 这也适用于儒略历吗?那么一年中的儒略日与一年中的公历相同吗?
    • 您想要儒略日(工厂中常用的批号等)还是儒略历(教皇格雷戈里废弃的日历)?它们是完全不同的东西。
    • 是的,它将用于批号,我发现儒略日与公历一年中的一天相同。所以你的答案是正确的。非常感谢:)
    • 一年中的某一天在任何日历(儒略、公历、中国、罗马...)中可能都是相同的概念,因为它是一个简单的计数:1、2、3...
    【解决方案2】:
    SELECT TO_CHAR(SYSDATE, 'DDD') from DUAL;
    

    【讨论】:

      【解决方案3】:

      一种方法是使用:

      select sysdate - trunc(sysdate,'yyyy') from dual
      

      'Trunc' 删除除年份以外的所有内容并返回 01/01/2014,减去 sysdate 返回自 1 月 1 日以来的天数。

      【讨论】:

      • 是的,但不是儒略历?或者是吗?如果是这种情况,我可以使用:select to_char(sysdate, 'DDD') from dual;
      • 您应该在该表达式中添加+1,因为您的表达式从0开始计算天数
      【解决方案4】:

      使用sql select trunc(sysdate)+1 - trunc(sysdate,'yyyy') from dual。你会得到一个偶数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        • 2011-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多