SQL/MP Programming Manual for COBOL

Host Variables
HP NonStop SQL/MP Programming Manual for COBOL529758-003
2-21
Date-Time and INTERVAL Data Types
Example 2-3. Creating Valid DATETIME and INTERVAL Data Types
?INSPECT
?SYMBOLS
IDENTIFICATION DIVISION.
PROGRAM-ID.
COBEXT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. TANDEM/16.
OBJECT-COMPUTER. TANDEM/16.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 OUTPUT-VAL PIC X(30).
01 INPUT-VAL PIC X(30) VALUE SPACES.
01 TEMP-STMT-TEXT PIC X(200) VALUE SPACES.
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC SQL INCLUDE SQLCA END-EXEC.
?NOLIST
EXTENDED-STORAGE SECTION.
?LIST
PROCEDURE DIVISION.
1000-DRIVER.
PERFORM 3000-SPECIFY-ERROR-HANDLING.
PERFORM 3100-PROCESS-QUERIES.
STOP RUN.
3000-SPECIFY-ERROR-HANDLING.
EXEC SQL WHENEVER SQLERROR PERFORM :6000-HANDLE-ERROR END-EXEC.
3100-PROCESS-QUERIES.
* Table DT has column TS of datatype DATETIME
MOVE "2004-01-22:13:40:05.550000" TO INPUT-VAL
MOVE "SELECT CAST(TS AS CHAR(29)) FROM dt where ts
- " >= CAST( CAST(? AS CHAR(29)) AS DATETIME
- " YEAR TO FRACTION)" TO TEMP-STMT-TEXT
EXEC SQL BEGIN WORK END-EXEC
EXEC SQL PREPARE S1 FROM :TEMP-STMT-TEXT END-EXEC
EXEC SQL DECLARE C1 CURSOR FOR S1 END-EXEC
EXEC SQL OPEN C1 USING :INPUT-VAL END-EXEC
PERFORM UNTIL SQLCODE < 0 OR SQLCODE = 100
EXEC SQL FETCH C1 INTO :OUTPUT-VAL END-EXEC
IF SQLCODE >= 0 AND SQLCODE NOT = 100 THEN
DISPLAY "VALUE IS " OUTPUT-VAL
END-IF
END-PERFORM
EXEC SQL CLOSE C1 END-EXEC
EXEC SQL COMMIT WORK END-EXEC.
6000-HANDLE-ERROR.
ENTER TAL "SQLCADISPLAY" USING SQLCA
STOP RUN.