如何在oracle中传递日期值?

默认情况下,值是这样来的

activated_date.date_value为“激活日期”,completed_date.date_value为“完成日期”,

2015-11-25 05:34:57 2015-11-25 05:35:03

如何为包体传递MM / dd / YYYY格式的日期值这是包体

pkg_campaign_interactions_qty.getCampaignIncomingQty(Obj.object_id,TO_DATE(TO_CHAR(activated_date.date_value, 'MM / DD / YYYY'), 'MM / DD / YYYY'),TO_DATE(TO_CHAR(completed_date.date_value, 'MM / DD / YYYY') ,'MM / dd / YYYY'))为“Interactions”

我试图通过日期值这个格式获得ORA-01843:不是一个有效的月份

to_date(activated_date.date_value,'MM/dd/YYYY') as "Activated Date",to_date(completed_date.date_value,'MM/dd/YYYY') as "Completed Date",

这是我的包裹体

CREATE OR REPLACE PACKAGE "PKG_CAMPAIGN_INTERACTIONS_QTY" as FUNCTION getCampaignIncomingQty(tableName IN VARCHAR2,ActivatedDate IN DATE,CompletedDate IN DATE) RETURN NUMBER end PKG_CAMPAIGN_INTERACTIONS_QTY;

/


您收到的错误消息意味着您试图变成日期的值不具有指定的格式。

to_date(activated_date.date_value,'MM/dd/YYYY')

只有当activated_date.date_value是包含日期格式为MM / dd / YYYY格式的字符串时才会给出日期。

没有有效的月份表示字符串的第一部分的值不是1到12之间的数字。

基于你给你的样本应该使用:

to_date(activated_date.date_value,'YYYY-MM-DD')

因此,如果您有一个具有类型为date的输入参数的函数,则可以通过以下方式调用它:

create or replace my_function(p_date date) return number...

declare
  my_number number;
  my_date_string1 varchar2(20);
  my_date_string2 varchar2(20);
begin

  -- some string representing dates in different formats.
  my_date_string1 := '2015-12-01';
  my_date_string2 := '15/11/2015';

  -- Call the function. Make sure to convert the string into a
  -- date using the correct format.
  my_number := my_function(to_date(my_date_string1,'YYYY-MM-DD'));
  my_number := my_function(to_date(my_date_string2,'DD/MM/YYYY'));
end;
链接地址: http://www.djcxy.com/p/6303.html

上一篇: How to pass date values in oracle?

下一篇: What must be considered when modifying Oracle DATE column to TIMESTAMP