Para manipular las fechas en la base de datos Oracle se cuenta con dos funciones que son TO_CHAR, TO_DATE, ¿como trabajar con cada una.?
La función TO_CHAR recibe dos parámetros el primero tiene que ser de tipo date y el segundo una cadena que indica el formato de salida de la fecha.
Para obtener el año seria.
Para obtener el mes.
Finalmente el día
Los parámetros completos de la función to_char seria
TO_CHAR( value, [ format_mask ], [ nls_language ] )
La función TO_DATE nos recibe dos parámetros igualmente necesarios para poder darle formato a la cadena, pero en este caso en particular tendríamos que pasar una cadena que correspondería a la fecha como se presentaría a continuación y el formato resultante seria un valor de tipo date.
Para obtener el año seria.
Para obtener el mes.
Finalmente el dia
Los parámetros completos de la función seria
TO_DATE( STRING1, [ FORMAT_MASK ], [ NLS_LANGUAGE ] )
Tambíen se pueden obtener los datos que deseemos juntos usando las mismas sentencias, pero cambiando la mascara de la selección.
Para obtener los datos en texto, en el siguiente ejemplo el resultado es Marzo.
select to_char(to_date(to_char(03),'mm'),'Month') from dual;
En el caso de que la aplicación que accede a Oracle no esté indicando que la sesión se establece con los valores de internacionalización (NLS) correspondientes a España, obtendríamos "March" (siguiendo con el ejemplo). Para obtener "Marzo" habría que indicar la variable NLS correspondiente en la propia expresión TO_CHAR:
select to_char(to_date(to_char(03),'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH') from dual;
Por supuesto, como ya sabéis, la expresión TO_CHAR para obtener el nombre del mes se puede usar dentro de código PL/SQL:
La función TO_CHAR recibe dos parámetros el primero tiene que ser de tipo date y el segundo una cadena que indica el formato de salida de la fecha.
Para obtener el año seria.
SELECT TO_CHAR(SYSDATE,’YYYY’) FROM DUAL; |
Para obtener el mes.
SELECT TO_CHAR(SYSDATE,’MM’) FROM DUAL; |
Finalmente el día
SELECT TO_CHAR(SYSDATE,’DD’) FROM DUAL;. |
TO_CHAR( value, [ format_mask ], [ nls_language ] )
La función TO_DATE nos recibe dos parámetros igualmente necesarios para poder darle formato a la cadena, pero en este caso en particular tendríamos que pasar una cadena que correspondería a la fecha como se presentaría a continuación y el formato resultante seria un valor de tipo date.
Para obtener el año seria.
SELECT TO_DATE(‘2013/11/02’,’YYYY’) FROM DUAL ; |
SELECT TO_DATE(‘2013/11/02’’MM’) FROM DUAL; |
Finalmente el dia
SELECT TO_DATE(‘2013/11/02’,’DD’) FROM DUAL; |
TO_DATE( STRING1, [ FORMAT_MASK ], [ NLS_LANGUAGE ] )
Tambíen se pueden obtener los datos que deseemos juntos usando las mismas sentencias, pero cambiando la mascara de la selección.
SELECT
TO_DATE(‘2013/11/02’,’
MM/YYYY
’)
FROM
DUAL;
SELECT
TO_CHAR(SYSDATE,’MM/YYYY’)
FROM
DUAL;
Para obtener los datos en texto, en el siguiente ejemplo el resultado es Marzo.
select to_char(to_date(to_char(03),'mm'),'Month') from dual;
En el caso de que la aplicación que accede a Oracle no esté indicando que la sesión se establece con los valores de internacionalización (NLS) correspondientes a España, obtendríamos "March" (siguiendo con el ejemplo). Para obtener "Marzo" habría que indicar la variable NLS correspondiente en la propia expresión TO_CHAR:
select to_char(to_date(to_char(03),'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH') from dual;
Por supuesto, como ya sabéis, la expresión TO_CHAR para obtener el nombre del mes se puede usar dentro de código PL/SQL:
declareUna forma de obtener el valor numérico de alguno de los componentes de la fecha (dia, mes, año, etc) es usando la función EXTRACT:
mesn number(2);
mesc varchar(20);
begin
mesn:=3;
mesc:=to_char(to_date(to_char(mesn),'mm'),'Month','NLS_DATE_LANGUAGE = SPANISH');
dbms_output.put_line('El mes '||to_char(mesn)||' es '||mesc);
end;
/
select extract(day from sysdate) dia, extract(month from sysdate) mes, extract(year from sysdate) anio from dual;
DIA MES ANIO
---------- ---------- ----------
5 10 2010
Fuentes.
http://www.ingenieroweb.com.co/como-obtener-el-a%C3%B1o-mes-o-d%C3%AD-en-oracle
http://www.um.es/atica/sql---formatos-de-fecha-1
DIA MES ANIO
---------- ---------- ----------
5 10 2010
Fuentes.
http://www.ingenieroweb.com.co/como-obtener-el-a%C3%B1o-mes-o-d%C3%AD-en-oracle
http://www.um.es/atica/sql---formatos-de-fecha-1
No hay comentarios:
Publicar un comentario