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.
Deja una respuesta