A menudo necesitamos cambiar el formato de fecha durante la verificación. Aquí hay algunas formas que puede usar para cambiar el formato de fecha en la base de datos Oracle
Formato de fecha predeterminado de Oracle
El formato de fecha predeterminado en Oracle está controlado por el valor del parámetro NLS_DATE_FORMAT.
La siguiente consulta se puede utilizar para encontrar el valor actual del parámetro NLS_DATE_FORMAT
SELECT value FROM V$NLS_PARAMETERS WHERE parameter = 'NLS_DATE_FORMAT';
Cómo cambiar el formato de toda la sesión
Podemos cambiar el parámetro en la sesión y elegir el formato que queramos para la fecha de Oracle. Aquí está el sql que se puede usar para hacer en la sesión
ALTER SESSION SET NLS_DATE_FORMAT = '[date_format]'; MM Numeric month (e.g., 07) MON Abbreviated month name (e.g., JUL) MONTH Full month name (e.g., JULY) DD Day of month (e.g., 24) DY Abbreviated name of day (e.g., FRI) YYYY 4-digit year (e.g., 1998) YY Last 2 digits of the year (e.g., 98) RR Like YY, but the two digits are ``rounded'' to a year in the range 1950 to 2049. Thus, 06 is considered 2006 instead of 1906 AM (or PM) Meridian indicator HH Hour of day (1-12) HH24 Hour of day (0-23) MI Minute (0-59) SS Second (0-59)
Ejemplo
alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';
Ahora, sea cual sea la consulta que ejecute, la columna de fecha se formateará según el formato de fecha anterior
Example select sysdate from dual;
Cómo cambiar el formato de fecha usando la función to_char
Es posible que deseemos tener un formato de fecha diferente para las diferentes consultas de SQL. En ese caso, puede planear usar la función de fila única de Oracle para la función_char y puede convertir la columna de datos de Oracle al formato que desee
Example select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss') from dual; select to_char(sysdate, 'dd-mon-yyyy') from dual;
Cómo cambiar el formato de fecha usando la función to_date
Es posible que deseemos cambiar las cadenas al formato de fecha para comparar, para almacenarlas como la fecha en la tabla de Oracle. En este caso, puede usar la función to_date de Oracle
Example select to_date('11-JAN-2019 13:12:12', 'dd-mon-yyyy hh24:mi:ss') from dual; select to_date( '11-JAN-2019', 'dd-mon-yyyy') from dual;
Lo importante a tener en cuenta:la cadena se convierte en una fecha y la fecha se devuelve con el formato de fecha predeterminado en la declaración de selección. Si está utilizando la función to_date para almacenar cadenas como la fecha en la columna de fecha, eso se almacenará solo como fecha. Ahora, cuando seleccione esa columna, la fecha se mostrará en el formato de fecha predeterminado de Oracle establecido en la sesión.
Cómo formatear la fecha para mostrar el día, la semana, los meses, etc.
Day of Week SQL> select to_char(sysdate,'D') col from dual; col ---- 2 Name of WeekDay SQL> select to_char(sysdate,'DAY') col from dual; col --- MONDAY Abbreviated name of day SQL> select to_char(sysdate,'DY') from dual; col ---- MON Day of Month SQL> select to_char(sysdate,'DD') from dual; col ---- 30 Abbreviated name of month SQL> select to_char(sysdate,'MON') from dual; col ---- NOV Name of Month SQL> select to_char(sysdate,'MONTH') from dual; col ----- NOVEMBER Day of Year SQL> select to_char(sysdate,'DDD') from dual; col ---- 334 Week of the year SQL> select to_char(sysdate,'IW') from dual; col ---- 05 Week of Month SQL> select to_char(sysdate,'W') from dual; col ----- 5 Month in Numbers SQL> select to_char(sysdate,'MM') from dual; col ---- 11 Year in Numbers SQL> select to_char(sysdate,'YYYY') from dual; col ---- 2019 Year in words SQL> select to_char(sysdate,'YEAR') from dual; col --- TWENTY NINE Hour in 0-12 format SQL> select to_char(sysdate,'HH') from dual' col ---- 08 Hour in 0-24 format SQL> select to_char(sysdate,'HH24') from dual; col --- 12 Minutes SQL> select to_char(sysdate,'MI') from dual; col ---- 45 Seconds SQL> select to_char(sysdate,'SS') from dual; col ---- 45
Espero que te gusten estos sencillos pasos sobre cómo cambiar el formato de fecha en la base de datos de Oracle. Puede haber muchos ejemplos en los que se puede usar esto. Acabo de dar algunos ejemplos simples para demostrar la funcionalidad
Leer también
Funciones de fecha de Oracle: Esta publicación cubre funciones de fecha de Oracle, diferencia de fecha de Oracle en años, diferencia de fecha de Oracle en días, diferencia de fecha de Oracle en meses.
Función NULLIF en Oracle:función NULLIF en Oracle compara dos valores y devuelva nulo si los valores son iguales, de lo contrario, devuelva el primer valor. No puede especificar el NULL literal en los valores base de datos de Oracle. La actualización se puede ejecutar de varias maneras
Función de fusión en Oracle:la función de fusión en Oracle devolverá la primera expresión si no es nula; de lo contrario, fusionará el resto de la expresión.
cómo obtener metadatos de una tabla en Oracle:consulte cómo obtener una definición de tabla en Oracle, mostrar definición de índice de Oracle, obtener ddl de una vista materializada en Oracle, obtener la consulta de una vista en Oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html