【问题标题】:how do I get the Specific date of the current month in Oracle?如何在 Oracle 中获取当月的具体日期?
【发布时间】:2015-09-12 07:01:32
【问题描述】:

我需要运行一个批处理作业,它将处理数据库表中在当月 14 日之前创建的所有记录。在java中我知道,但是我直接通过Oracle查询访问数据库服务器,所以我需要将记录创建日期与当前月份的14日相匹配。

批处理作业可以在任何日期运行,例如 17、18 或 29 等,但记录应仅返回在当月 14 日之前创建的记录,无法找到任何帮助。

类似java

Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_MONTH, 14);

【问题讨论】:

    标签: oracle


    【解决方案1】:

    您可以使用 TRUNC 中的正确格式字符串将日期截断为月份,然后添加 14。

    所以:

    SELECT TRUNC(SYSDATE,'mm')+13 FROM DUAL;
    

    给出当前月份的 14 号。因此,您可以选择 1 日和 14 日之间的数据(您说的是 14 日之前)

    SELECT * 
      FROM my_table 
     WHERE date_created >= TRUNC(SYSDATE,'mm') 
       AND date_Created < TRUNC(SYSDATE,'mm')+13;
    

    已编辑以修复愚蠢的数学错误....

    【讨论】:

    • 谢谢,但是这个返回 15-JUN-15。
    【解决方案2】:

    您可以使用 TRUNC() 轻松找到当前月份的 14 号。这是一个例子:

    select sysdate,
           trunc(sysdate, 'mm') + 13 date_to_query_before
    from dual;
    
    SYSDATE               DATE_TO_QUERY_BEFORE 
    --------------------- ---------------------
    25/06/2015 15:23:55   14/06/2015 00:00:00  
    

    【讨论】:

    • 谢谢,真的有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多