【问题标题】:oracle date function to append month and yearoracle date 函数添加月份和年份
【发布时间】:2014-05-10 15:44:04
【问题描述】:

您好现在有这样的查询我想在查询中附加值所以 tran_date 在数据库中是日期时间格式:所以考虑这两个查询

查询 1:: 我必须以日期格式附加值,但它不起作用..如何以日期类型传递年份和月份::

select TRAN_DATE,
       trunc(nvl(SUM(SALES_VALUE), 0) + nvl(sum(total_sales), 0) -
             nvl(sum(net_sales), 0) + nvl(sum(discount), 0)) Sale
  from OUTLET_PAYMODE_REPORT_FACT A, OUTLET_DETAILS B
 WHERE A.OUTLET_ID = B.OUTLET_ID
   and SALES_VALUE > 0
   and to_date(TRAN_DATE, 'yyyy') = '2013'
   AND to_date(TRAN_DATE, 'MON') = 'APR'
    OR to_date(TRAN_DATE, 'yyyy') = '2013'
   AND to_date(TRAN_DATE, 'MON') = 'MAR'
 GROUP BY TRAN_DATE

查询2:它的工作,但它是字符串格式

select TRAN_DATE,
       trunc(nvl(SUM(SALES_VALUE), 0) + nvl(sum(total_sales), 0) -
             nvl(sum(net_sales), 0) + nvl(sum(discount), 0)) Sale
  from OUTLET_PAYMODE_REPORT_FACT A, OUTLET_DETAILS B
 WHERE A.OUTLET_ID = B.OUTLET_ID
   and SALES_VALUE > 0
   and (to_char(TRAN_DATE, 'yyyy') = '2013' AND
       to_char(TRAN_DATE, 'MON') = 'APR')
    OR (to_char(TRAN_DATE, 'yyyy') = '2013' AND
       to_char(TRAN_DATE, 'MON') = 'MAR')
 GROUP BY TRAN_DATE

【问题讨论】:

    标签: sql oracle date oracle10g


    【解决方案1】:

    其中一个选项是将BETWEEN 条件与DATETIME 数据类型列一起使用:

    select TRAN_DATE,
           trunc(nvl(SUM(SALES_VALUE), 0) + nvl(sum(total_sales), 0) -
                 nvl(sum(net_sales), 0) + nvl(sum(discount), 0)) Sale
      from OUTLET_PAYMODE_REPORT_FACT A, OUTLET_DETAILS B
     WHERE A.OUTLET_ID = B.OUTLET_ID
       and SALES_VALUE > 0
       and TRAN_DATE between to_date('01.03.2013', 'dd.mm.yyyy') and
                             to_date('30.04.2013', 'dd.mm.yyyy')
     GROUP BY TRAN_DATE;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-19
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多