Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Comparing "date" values in Pro*C

Re: Comparing "date" values in Pro*C

From: Ken Denny <kendenny_at_bnr.ca>
Date: 1997/10/07
Message-ID: <343A6C3B.108A@bnr.ca>#1/1

Pravin Sitaram wrote:
>
> Hello,
>
> Within a Pro*C program, I need to select "date" values
> from a database table. What is the data type that I
> need to define in "C" for the host variable so that
> I can extract the "date" value into the host variable
> and then compare two "date" values? I tried "char *"
> datatype for the host variable, but it does not work.
>
> Please mail your suggestions to:
> nagaraj_jyothi_at_isus.emc.com
>
> Thanks,
> Jyothi
> --------------------------------------------------------------

Define your date avriables in C as char[15]. Then in SQL use the to_char function with a mask of 'yyyymmddhh24miss'.

void main()
{

   EXEC SQL BEGIN DECLARE SECTION;
   char date1[15];
   EXEC SQL VAR date1 IS STRING;
   char date2[15];
   EXEC SQL VAR date2 IS STRING;
   . . .
   EXEC SQL END DECLARE SECTION;    EXEC SQL

      SELECT TO_CHAR(d1,'YYYYMMDDHH24MISS'),
         TO_CHAR(d2,'YYYYMMDDHH24MISS') INTO :date1, date2
         FROM table;

   if (strcmp(date1,date2) > 0)
   {

      /* date1 > date2 */
   }
   else if (strcmp(date1,date2) < 0)
   {

      /* date1 < date2 */
   }
   else
   {

      /* dates are equal */
   }
}

Hope this helps
Ken Denny
kendenny_at_bnr.ca (work)
kdenny_at_interpath.com (home) Received on Tue Oct 07 1997 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US