yyyy update hora formato fecha ejemplos convert sql oracle date peoplesoft

sql - hora - update oracle



ActualizaciĆ³n de una fecha en la tabla de Oracle SQL (3)

Estoy tratando de actualizar una fecha en una tabla de SQL. Estoy usando Peoplesoft Oracle. Cuando ejecuto esta consulta:

Select ASOFDATE from PASOFDATE;

Me sale 16/04/2012

Intenté ejecutar esta consulta

UPDATE PASOFDATE SET ASOFDATE = ''11/21/2012'';

Pero no está funcionando.

¿Alguien sabe cómo cambiaría la fecha a la deseada?


Esto se basa en la suposición de que está obteniendo un error sobre el formato de fecha, como un valor de mes no válido o un carácter no numérico cuando se espera un valor numérico.

Las fechas almacenadas en la base de datos no tienen formatos. Cuando consulta la fecha, su cliente está formateando la fecha para mostrar, como 4/16/2011 . Normalmente, el mismo formato de fecha se usa para seleccionar y actualizar las fechas, pero en este caso parecen ser diferentes, por lo que su cliente aparentemente está haciendo algo más complicado que SQL * Plus, por ejemplo.

Cuando intenta actualizarlo, está utilizando un modelo de formato de fecha predeterminado. Debido a la forma en que se muestra, usted asume que es MM/DD/YYYY , pero parece que no lo es. Podría descubrir qué es, pero es mejor no confiar en el modelo predeterminado o en ningún modelo de formato implícito.

Si ese es el problema o no, siempre debe especificar el modelo de fecha:

UPDATE PASOFDATE SET ASOFDATE = TO_DATE(''11/21/2012'', ''MM/DD/YYYY'');

Dado que no está especificando un componente de tiempo (todas las columnas DATE Oracle incluyen una hora, incluso si es medianoche), también podría usar un literal de fecha :

UPDATE PASOFDATE SET ASOFDATE = DATE ''2012-11-21'';

Tal vez debería verificar que el valor actual no incluya una hora, aunque el nombre de la columna sugiere que no lo incluye.


Si este SQL se está utilizando en cualquier código específico de personas (Application Engine, SQLEXEC, SQLfetch, etc.), podría usar% Date en metaSQL. Peopletools convierte automáticamente la fecha a un formato que sería aceptado por la plataforma de base de datos en la que se ejecuta la aplicación.

En caso de que este SQL se esté utilizando para realizar una actualización de backend desde un analizador de consultas (como SQLDeveloper, SQLTools), el formato de fecha que se está utilizando es incorrecto. Oracle espera que el formato de fecha sea DD-MMM-YYYY, donde MMM podría ser JAN, FEB, MAR, etc.


Solo para agregar a la respuesta de Alex Poole, aquí está cómo hace la fecha y la hora:

TO_DATE(''31/DEC/2017 12:59:59'', ''dd/mm/yyyy hh24:mi:ss'')