如何在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