SQL/MX Programming Manual for C and COBOL (G06.24+, H06.03+)
Host Variables in C/C++ Programs
HP NonStop SQL/MX Programming Manual for C and COBOL—523627-004
3-26
Date-Time and Interval Data
 } bill; 
 ...
EXEC SQL END DECLARE SECTION; 
...
EXEC SQL SELECT custnum, CAST(billing_date AS CHAR(5)) 
 INTO :bill.hv_custnum, :bill.hv_billing_date 
 FROM billings 
 WHERE custnum = :hv_this_customer; 
... bill.hv_billing_date[5]='\0';
Inserting or Updating SQL/MP DATETIME Values Not 
Equivalent to DATE, TIME, or TIMESTAMP
To insert or update nonstandard SQL/MP DATETIME values that are not equivalent to 
DATE, TIME, or TIMESTAMP, format a C character string in the desired display format 
for a date, time, or timestamp. Within an INSERT or UPDATE statement, use the 
SQL/MX CAST function to convert the character date-time data to a DATE, TIME, or 
TIMESTAMP data type. 
If you are using date-time values as input values to the database in statements other 
than INSERT or UPDATE (for example, within the WHERE clause of a SELECT 
statement), you must also use the CAST function to convert the character string to a 
DATE, TIME, or TIMESTAMP data type.
Example
Suppose that an SQL/MP database has a BILLINGS table that consists of the 
CUSTNUM and BILLING_DATE columns. The BILLING_DATE column has a 
DATETIME MONTH TO DAY data type, which has no equivalent in SQL/MX. This 
example inserts a customer number and date-time value into that table:
EXEC SQL BEGIN DECLARE SECTION; 
 struct billing_rec {
 unsigned short hv_custnum; 
 char hv_billing_date[6]; 
 ...
 } bill; 
 ...
EXEC SQL END DECLARE SECTION; 
...
 bill.hv_billing_date[5]='\0';
...
EXEC SQL INSERT INTO billings
 VALUES (:bill.hv_custnum, 
 CAST(:bill.hv_billing_date AS DATETIME MONTH TO DAY));
...
INTERVAL Representation
Interval values are represented as character strings, with a separator between the 
values of the fields (year-month or day-time). An extra character is generated at the 
beginning of the interval string for a sign. 
C










