Hi,
The appropriate ANSI SQL Syntax for your operation is
( DATE - INTERVAL ‘6’ MONTH )
However Teradata has an SQL EXTENSION only valid agaianst Teradata platforms called
ADD_MONTHS
as stated above. Here is what the the SQL manual Volume 5 Chapter 5 has to say about the difference between the two.
Normalization Behavior of ADD_MONTHS
The standard approach to interval month arithmetic is to increment MONTH and YEAR values as appropriate and retain the source value for DAY. This is a problem for the case when the target DAY value is smaller than the source DAY value from the source date.
For example, what approach should be taken to handle the result of adding one MONTH to a source DATE value of ‘1999-01-31’? Using the standard approach, the answer would be ‘1999-02-31’, but February 31 is not a valid date.
The behavior of ADD_MONTHS is equivalent to that of the ANSI SQL-99-compliant operations
DATE ± INTERVAL ‘n’ MONTH
and
TIMESTAMP ± INTERVAL ‘n’ MONTH
with one important difference.
The difference between these two scalar arithmetic operations is their behavior when a non-valid date value is returned by the function.
• ANSI SQL-99 arithmetic returns an error.
• ADD_MONTHS arithmetic makes normative adjustments and returns a valid date.
By the way all the SQL manuals ( and a lot of other manuals ) are available from
click on SQL reference and pick your release level.