从完整日期(日期时间)获取/提取月份和年份

时间:2015-05-15 19:23:27

标签: oracleforms

我的日期数据类型的列我试图提取月份和年份 从完整日期开始计算一年中的总销售额 但我得到了期待的错误,;当我从我测试下面的查询 在蟾蜍和它的工作正常,无论如何查询将不会给我我想要的结果在蟾蜍只有一个月,我需要我的计算基于月和年

我尝试过截断但结果将是DD-MM-YYYY

To_char适用于数据库专栏,但未在表单构建器

中使用text_item

那么如何让这个查询起作用,有没有办法提取月份和年份?

SELECT NVL(SUM(TOTAL_PRICE),0) 
  INTO :DUMMY.M_TOTAL_ORDERS
  FROM ORDERS 
  WHERE EXTRACT(MONTH FROM ORDER_DATE)= EXTRACT(MONTH FROM SYSDATE);

1 个答案:

答案 0 :(得分:1)

你说你收到错误,但你没告诉我们错误是什么。您告诉我们查询“工作正常”,但它并不完全符合您的要求。包含样本数据和预期结果的测试用例非常有用。

我猜你想要

Set

我期望返回我认为你想要的结果。但它无法在SELECT NVL( SUM(total_price), 0) FROM orders WHERE trunc( order_date, 'MM' ) = trunc( sysdate, 'MM' ) 上使用常规索引(您可以在order_date上创建可以使用的基于函数的索引。)

trunc(order_date, 'MM')

也可以(假设SELECT NVL( SUM(total_price), 0) FROM orders WHERE order_date BETWEEN trunc( sysdate, 'MM' ) AND sysdate 总是小于order_date)并且允许您在sysdate上使用索引(如果存在)。

如果这不是您所追求的,那么发布可重现的测试用例将非常有用。