Funciones TO_CHAR y TO_DATE de Oracle

Hola a todos, hoy os voy a explicar como usar las funciones TO_CHAR y TO_DATE de Oracle.

En Oracle, es posible que necesitemos hacer una conversión de string a fecha y viceversa. Para ello, usaremos las siguientes funciones:

  • TO_CHAR(fecha, formato): Convierte de fecha a cadena
  • TO_DATE(cadena, formato): Convierte una cadena a fecha

Podemos usarlo para mostrar o para filtrar.

 

Vamos a usar estos registros:

Para el tema del formato, podemos usar letras concretas:

Formato Descripción Resultado
Y Último dígito
del año
20
YY Los 2 últimos
dígitos del año
20
YYY Los 3 últimos
dígitos del año
020
YYYY Año usando 4
dígitos
2020
RR Año usando 2
dígitos
20
YEAR Año escrito en
inglés
TWENTY
MM Mes con 2
dígitos
03
MON Abreviatura
del mes con 3 letras
MAR
MONTH Nombre del mes
en inglés
MARCH
D Día de la
semana
3
DD Día del mes (2
dígitos)
04
DDD Día del año 64
DY Abreviatura
del nombre del día de 3 letras
WED
DAY Nombre del día
en inglés
WEDNESDAY
W Semana del mes 1
WW Semana del año 10
Q Cuarto del año 1
CC Siglo 21
SCC Igual que CC
pero añade «-» si la fecha es antes de Cristo
-3
SYYYY Igual que YYYY
pero añade «-» si la fecha es antes de Cristo
-734
SYEAR Igual que YEAR
pero añade «-» si la fecha es antes de Cristo
-THIRTY THREE
BC, AD, B.C. ,
A.D.
Añade BC o AD AD
J Número de días
desde el 31 de diciembre de 4713 a. C.
2458914
IW Semana según
el estándar ISO
10
RM Mes en números
romanos
III
AM, PM, A.M. ,
P.M.
Indicador de
meridiano
PM
HH Hora del día 06
HH12 Hora del día
1-12
06
HH24 Hora del día
0-23
18
MI Minuto 0-59 34
SS Segundo 0-59 45
SSSSS Segundos desde
la media noche 0-86399
32098
/.,?#! Signos de
puntuación, por ejemplo: ‘MM.YY’
03.20
«literales» Por ejemplo, ‘«Semana»
W «de» Month’
Semana 1 de March
 TH DDth 12TH
SP Transcripción
de números, por ejemplo: MM
Nine
THSP or SPTH Transcripción
posicional o numérica, por ejemplo: ‘hh24Spth’
Fourtheenth

Veamos algunos ejemplos de TO_CHAR:

SELECT * 
FROM resenias
WHERE TO_CHAR(fecha, 'YYYY-MM-DD') < '2019-01-20';

SELECT descripcion, TO_CHAR(fecha, 'YYYY-MM-DD') as fecha
FROM resenias

Veamos un ejemplo de TO_DATE:

 

SELECT * 
FROM resenias
WHERE fecha < to_date('2019-01-20', 'YYYY-MM-DD');

¿Quieres saber mas de SQL en Oracle? Tengo un curso en udemy con muchos ejercicios prácticos.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *