如何在oracle中传递日期值?

时间:2015-12-01 07:29:45

标签: oracle plsql oracle11g oracle10g

  

默认值是这样的

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'))作为“互动”

  

我尝试将此格式的日期值传递给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;

/

1 个答案:

答案 0 :(得分:2)

您收到的错误消息表示您尝试转换为日期的值没有指定格式。

char a[5]={"st","nd","rd","th","th"};

只有当activation_date.date_value是一个包含MM / dd / YYYY格式的日期的字符串时,才会给你一个日期。

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

根据您提供的样本,您应该使用:

#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

int main(){
int value=1;
int ivalue;
int sum=0;
int average;
int x,y;
int max=INT_MIN;
int min=INT_MAX;
int count=0;
int maxPos=1;
int minPos=1;
string A[5]={"st","nd","rd","th","th"};


cout << "Enter loop limit : "; cin >> value ;
cout<<endl;
cout<<endl;

for( x=0;x<=value-1;x++){
    for (x=0;x<=A[5];x++)
        cout << "Enter "<<x+1<<A[0]<<" value : "; cin >> ivalue;
        sum=sum+ivalue;
        count++;

  if (ivalue>max)
 {
  max=ivalue;
maxPos = count;
 }
 if (ivalue<min)
{
min=ivalue;
minPos = count;
 }

}

   cout<<endl;
   cout<<endl;

   cout << "Sum of entered values = " <<sum <<endl;
   cout << "Average  value = "<< sum/value<<endl;
   cout << "Minimum value = " << min << endl;
   cout << "Minimum value entered at index :" << minPos << endl;
    cout << "Maximum value = " << max<< endl;
     cout << "Maximum  value entered at index : " << maxPos<< endl;

  }

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

strcpy(szDirPath, pszParentDir);
strcat(szDirPath, "\\*.*");
hFindDir = FindFirstFile(szDirPath, &FindFileDataDir);