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.