Convierte un valor de fecha de INT o VARCHAR al tipo de dato DATE. Cuando se omite format, la entrada debe coincidir con el formato predeterminado yyyy-MM-dd.
Sintaxis
Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date, VARCHAR format)
Parámetros
| Parámetro | Tipo de dato | Descripción |
|---|---|---|
time |
INT | Número de días transcurridos from la época (1 de enero de 1970, 00:00:00 UTC). Por ejemplo, 200 se resuelve como 1970-07-20. Nota
Este comportamiento aplica únicamente a Ververica Runtime (VVR) 8.0.6 y versiones posteriores. En versiones de VVR anteriores a la 8.0.6, el valor se convierte implícitamente a STRING. |
date |
VARCHAR | Cadena de fecha. El formato predeterminado es yyyy-MM-dd. Por ejemplo, '2017-09-15'. |
format |
VARCHAR | Patrón de formato de fecha personalizado. Por ejemplo, 'yyyyMMdd' o 'MMddyyyy'. |
Notas de uso
-
El comportamiento del parámetro
time(INT) varía según la versión de VVR:VVR 8.0.6 y posteriores:
timese interpreta como el número de días transcurridos from la época (1 de enero de 1970, 00:00:00 UTC).VVR anteriores a la 8.0.6:
timese convierte implícitamente a STRING antes de procesarse.
Si se omite el parámetro
formatcon una entrada VARCHAR, se aplica el formato predeterminadoyyyy-MM-dd. Si los datos de origen usan un formato diferente, como DATETIME de MySQL (yyyy-MM-dd HH:mm:ss), debe especificar explícitamente el parámetroformatcon el formato real. De lo contrario, el análisis falla y devuelve un resultado incorrecto como1970-01-01.
Ejemplos
A continuación se presentan ejemplos que utilizan la tabla T1 como origen de datos.
Tabla T1
|
date1 (INT) |
date2 (VARCHAR) |
date3 (VARCHAR) |
date4 (VARCHAR) |
date5 (VARCHAR) |
|
200 |
2017-09-15 |
20170915 |
09152017 |
092017 |
Convertir una entrada INT
Pase un entero que represente el número de días transcurridos from la época.
SELECT TO_DATE(date1) AS var1
FROM T1;
|
var1 (DATE) |
|
1970-07-20 (VVR 8.0.6 y posteriores) |
|
0200-01-01 (VVR anteriores a la 8.0.6) |
Convertir una entrada VARCHAR con el formato predeterminado
Cuando la entrada ya tiene el formato yyyy-MM-dd, omita el parámetro format.
SELECT TO_DATE(date2) AS var2
FROM T1;
|
var2 (DATE) |
|
2017-09-15 |
Convertir una entrada VARCHAR con un formato personalizado
Especifique un patrón format que coincida con la estructura de la cadena de entrada.
SELECT TO_DATE(date3, 'yyyyMMdd') AS var3,
TO_DATE(date4, 'MMddyyyy') AS var4,
TO_DATE(date5, 'MMyyyy') AS var5
FROM T1;
|
var3 (DATE) |
var4 (DATE) |
var5 (DATE) |
|
2017-09-15 |
2017-09-15 |
2017-09-01 |
Pasos siguientes
TO_TIMESTAMP_TZ: Convierte un valor de fecha VARCHAR a TIMESTAMP según una zona horaria especificada.
DATE_ADD: Devuelve una fecha tras sumar un número específico de días.