Input Data Specification
The following general rules apply to date and time input formats:
- The century value for two-digit years is defined by the SET EPOCH value. By default, the century range begins 69 years prior to the current year and ends 30 years after the current year. Whether all four digits or only two digits are displayed in output depends on the width specification on the format.
- Dashes, periods, commas, slashes, or blanks can be used as delimiters in the input values. For
example, with the
DATE
format, the following input forms are all acceptable:28-OCT-90 28/10/1990 28.OCT.90 28 October, 1990
The displayed values, however, will be the same: 28-OCT-90 or 28-OCT-1990, depending on whether the specified width allows 11 characters in output.
For version 24 and higher, delimiters can be omitted in input values for
DATE
,ADATE
,EDATE
, andSDATE
. For example, with theADATE
format, the form10281990
is acceptable. When delimiters are omitted, single digit specifications for month and day are not supported and year specifications must be 2 or 4 digits. Also, when month names are used, they must be specified in the three letter format when delimiters are omitted, as in 28OCT1990. - The
JDATE
format does not allow internal delimiters and requires leading zeros for day values of less than 100 and two-digit-year values of less than 10. For example, for January 1, 1990, the following two specifications are acceptable:90001 1990001
However, neither of the following is acceptable:
90 1 90/1
- Months can be represented in digits, Roman numerals,
or three-character abbreviations, and they can be fully spelled out.
For example, all of the following specifications are acceptable for
October:
10 X OCT October
- The quarter in
QYR
format is expressed as 1, 2, 3, or 4. It is separated from the year by the letter Q. Blanks can be used as additional delimiters. For example, for the fourth quarter of 1990, all of the following specifications are acceptable:4Q90 4Q1990 4 Q 90 4 Q 1990
On some operating systems, such as IBM CMS, Q must be upper case. The displayed output is 4 Q 90 or 4 Q 1990, depending on whether the width specified allows all four digits of the year.
For version 24 and higher, the form Qq can be used to specify the quarter. For example, for the fourth quarter of 1990, the forms
Q4 1990
andQ41990
are acceptable. - The week in the
WKYR
format is expressed as a number from 1 to 53. Week 1 begins on January 1, week 2 on January 8, and so on. The value may be different from the number of the calendar week. The week and year are separated by the stringWK
. Blanks can be used as additional delimiters. For example, for the 43rd week of 1990, all of the following specifications are acceptable:43WK90 43WK1990 43 WK 90 43 WK 1990
On some operating systems, such as IBM CMS,
WK
must be upper case. The displayed output is 43 WK 90 or 43 WK 1990, depending on whether the specified width allows enough space for all four digits of the year.For version 24 and higher, the week and year can be separated by a blank, or the delimiter can be omitted. For example, for the 43rd week of 1990, the forms
43 1990
and431990
are acceptable. - In time specifications, colons can be used as delimiters between hours, minutes, and seconds.
For version 24 and higher, the delimiters can be omitted for
TIME
andMTIME
(introduced in version 24). When delimiters are omitted, single digit specifications for hours, minutes, or seconds are not supported. When hours are included, both hours and minutes are required but seconds are optional. ForMTIME
format, which represents minutes and seconds, both minutes and seconds are required. A period is required to separate seconds from fractional seconds. Hours can be of unlimited magnitude, but the maximum value for minutes is 59 and for seconds 59.999. . . . ForMTIME
format, however, minutes can be of unlimited magnitude. - Data values can contain a sign (+ or –) in
TIME
,DTIME
, andMTIME
formats to represent time intervals before or after a point in time. - For
YMDHMS
format (introduced in version 24), the separator between the date and time parts can be a space, an uppercase T, or it can be omitted. If the separator is omitted, then the delimiters in the date and time parts must also be omitted.
Example: DATE, ADATE, and JDATE
DATA LIST FIXED
/VAR1 1-17 (DATE) VAR2 21-37 (ADATE) VAR3 41-47 (JDATE).
BEGIN DATA
28-10-90 10/28/90 90301
28.OCT.1990 X 28 1990 1990301
28 October, 2001 Oct. 28, 2001 2001301
END DATA.
LIST.
- Internally, all date format variables are stored as the number of seconds from 0 hours, 0 minutes, and 0 seconds of Oct. 14, 1582.
The LIST
output from these commands is shown
in the following figure.
VAR1 VAR2 VAR3
28-OCT-1990 10/28/1990 1990301
28-OCT-1990 10/28/1990 1990301
28-OCT-2001 10/28/2001 2001301
Example: QYR, MOYR, and WKYR
DATA LIST FIXED /VAR1 1-10 (QYR) VAR2 12-25 (MOYR) VAR3 28-37 (WKYR).
BEGIN DATA
4Q90 10/90 43WK90
4 Q 90 Oct-1990 43 WK 1990
4 Q 2001 October, 2001 43 WK 2001
END DATA.
LIST.
- Internally, the value of a
QYR
variable is stored as midnight of the first day of the first month of the specified quarter, the value of aMOYR
variable is stored as midnight of the first day of the specified month, and the value of aWKYR
format variable is stored as midnight of the first day of the specified week. Thus, 4Q90 and 10/90 are both equivalent to October 1, 1990, and 43WK90 is equivalent to October 22, 1990.
The LIST
output
from these commands is shown in the following figure.
VAR1 VAR2 VAR3
4 Q 1990 OCT 1990 43 WK 1990
4 Q 1990 OCT 1990 43 WK 1990
4 Q 2001 OCT 2001 43 WK 2001
Example: TIME and MTIME
DATA LIST FIXED
/VAR1 1-11 (TIME,2) VAR2 13-21 (TIME) VAR3 23-28 (TIME) VAR4 31-35 (MTIME).
BEGIN DATA
1:2:34.75 1:2:34.75 1:2:34 2:34
END DATA.
LIST.
-
TIME
reads and writes time of the day or a time interval.MTIME
reads and writes a time interval that is specified in minutes and seconds. - Internally, the
TIME
orMTIME
values are stored as the number of seconds from midnight of the day or of the time interval.
The LIST
output from these commands is shown
in the following figure.
VAR1 VAR2 VAR3 VAR4
1:02:34.75 1:02:34 1:02 02:34
Example: WKDAY and MONTH
DATA LIST FIXED
/VAR1 1-9 (WKDAY) VAR2 10-18 (WKDAY)
VAR3 20-29 (MONTH) VAR4 30-32 (MONTH) VAR5 35-37 (MONTH).
BEGIN DATA
Sunday Sunday January 1 Jan
Monday Monday February 2 Feb
Tues Tues March 3 Mar
Wed Wed April 4 Apr
Th Th Oct 10 Oct
Fr Fr Nov 11 Nov
Sa Sa Dec 12 Dec
END DATA.
FORMATS VAR2 VAR5 (F2).
LIST.
-
WKDAY
reads and writes the day of the week;MONTH
reads and writes the month of the year. - Values
for
WKDAY
are entered as strings but stored as numbers. They can be used in arithmetic operations but not in string functions. - Values for
MONTH
can be entered either as strings or as numbers but are stored as numbers. They can be used in arithmetic operations but not in string functions. - To display
the values as numbers, assign an
F
format to the variable, as was done for VAR2 and VAR5 in the above example.
The LIST
output from these commands is shown in the following figure.
VAR1 VAR2 VAR3 VAR4 VAR5
SUNDAY 1 JANUARY JAN 1
MONDAY 2 FEBRUARY FEB 2
TUESDAY 3 MARCH MAR 3
WEDNESDAY 4 APRIL APR 4
THURSDAY 5 OCTOBER OCT 10
FRIDAY 6 NOVEMBER NOV 11
SATURDAY 7 DECEMBER DEC 12
Example: DTIME, DATETIME, and YMDHMS
DATA LIST FIXED /VAR1 1-14 (DTIME) VAR2 18-42 (DATETIME) VAR3 46-67 (YMDHMS).
BEGIN DATA
20 8:3 20-6-90 8:3 1990-06-20 8:3
20:8:03:46 20/JUN/1990 8:03:46 1990-06-20 8:03:46
20 08 03 46.75 20 June, 2001 08 03 46.75 2001-06-20T08:03:46.75
END DATA.
LIST.
-
DTIME
,DATETIME
, andYMDHMS
read and write time intervals. - The decimal point is explicitly coded in the input data for fractional seconds.
- The
DTIME
format allows a – or + sign in the data value to indicate a time interval before or after a point in time. - Internally, values for a
DTIME
variable are stored as the number of seconds of the time interval, while those for aDATETIME
orYMDHMS
variable are stored as the number of seconds from 0 hours, 0 minutes, and 0 seconds of Oct. 14, 1582.
The LIST
output from these commands is shown in the following figure.
VAR1 VAR2 VAR3
20 08:03:00 20-JUN-1990 08:03:00 1990-06-20 08:03:00
20 08:03:46 20-JUN-1990 08:03:46 1990-06-20 08:03:46
20 08:03:46 20-JUN-2001 08:03:46 2001-06-20 08:03:46