Use the DATE
data type to store date values. The
DATE
type is supported for Avro, HBase, Kudu, Parquet,
and Text.
Range:
0001-01-01 to 9999-12-31
Literals and expressions:
The DATE
literals are in the form of
DATE'YYYY-MM-DD'
. For examplep, DATE
'2013-01-01'
Parquet and Avro considerations:
Parquet and Avro use DATE
logical type for dates. The
DATE
logical type annotates an INT32
that stores the number of days from the Unix epoch, January 1, 1970. This
representation introduces an interoperability issue between Impala and
older versions of Hive:
If Hive versions lower than 3.1 wrote dates earlier than 1582-10-15 to a Parquet or Avro table, those dates would be read back incorrectly by Impala and vice versa. In Hive 3.1 and higher, this is no longer an issue.
Explicit casting between DATE and other data types:
DATE
type can only be converted to/from DATE
,
TIMESTAMP
, or STRING
types as described below.
Cast from | Cast to | Result |
---|---|---|
TIMESTAMP
|
DATE
|
The date component of the TIMESTAMP is returned, and the time of
the day component of the TIMESTAMP is ignored.
|
STRING
|
DATE
|
The DATE value of yyyy-MM-dd is returned.
The
If the time component is present in
If the |
DATE
|
TIMESTAMP
|
The year, month, and day of the DATE is returned along with the
time of day component set to 00:00:00 .
|
DATE
|
STRING
|
The STRING value, 'yyyy-MM-dd' , is returned.
|
Implicit casting between DATE and other types:
Implicit casting is supported:
STRING
to DATE
if the source
STRING
value is in the yyyy-MM-dd
or
yyyy-MM-dd HH:mm:ss.SSSSSSSSS
pattern.
DATE
to TIMESTAMP
.
Added in:
The DATE
type is available in Impala 3.3 and higher.
Kudu considerations:
In Impala 3.4, you can read and write DATE values to Kudu tables.