Siempre he tenido problemas con estos formatos, así que he logrado resumir los formatos que se pueden usar para formatear un campo date en oracle, usando la función to_char en la siguiente tabla, en caso de necesitar que los nombres de dias y/o meses en español se tiene que ejecutar inicialmente:
ALTER SESSION SET NLS_DATE_LANGUAGE = 'SPANISH'
En caso de ejecutar desde un procedimiento almacenado:
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_LANGUAGE = ''SPANISH''';
Para usar fracciones de segundo se debe usar to_timestamp en lugar de to_date, por ejemplo si tengo 30 jun 2021 19:32:23.115 debe ser to_timestamp('30 jun 2021 19:32:23.115','dd mon yyyy hh24:mi:ss.ff3')
ALTER SESSION SET NLS_DATE_LANGUAGE = 'SPANISH'
En caso de ejecutar desde un procedimiento almacenado:
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_LANGUAGE = ''SPANISH''';
| Parámetro | Detalle |
| YEAR | Año en letras, ejm: Dos mil nueve |
| YYYY | Año cuatro dígitos |
| YYY | Ultimos 3,2 o 1 dígitos del año |
| YY | |
| Y | |
| IYY | Ultimos 3,2 o 1 dígitos del año ISO |
| IY | |
| I | |
| IYYY | 4 dígitos del año, basado en el ISO estándar |
| Q | Quarter del año (1, 2, 3, 4; ENE-MAR = 1). |
| MM | Mes (01-12; ENE = 01). |
| MON | Nombre abreviado del mes |
| MONTH | Nombre del mes, completado con espacios en blanco, a nueve caractéres |
| RM | número romano del mes (I-XII; ENE = I). |
| WW | Semana del año (1-53) donde la semana 1 empieza el primer dia del año. |
| W | Semana del mes (1-5) donde la semana 1 empieza con el primer dia del mes |
| IW | Semana del año (1-52 or 1-53) basado en el estandar ISO. |
| D | Dia de la semana (1-7). |
| DAY | Nomber del dia. |
| DD | Dia del mes (1-31). |
| DDD | Dia del año (1-366). |
| DY | Nombre abreviado del día. |
| J | Dia Juliano; el numero de dias desde Enero 1, 4712 BC. |
| HH | Hora del día (1-12). |
| HH12 | Hora del día (1-12). |
| HH24 | Hora del día (0-23). |
| MI | Minuto (0-59). |
| SS | Segundo (0-59). |
| SSSSS | Segundos pasada la medianoche (0-86399). |
| FF | Fracciones de segundos. |
Para usar fracciones de segundo se debe usar to_timestamp en lugar de to_date, por ejemplo si tengo 30 jun 2021 19:32:23.115 debe ser to_timestamp('30 jun 2021 19:32:23.115','dd mon yyyy hh24:mi:ss.ff3')
Comentarios
Publicar un comentario