SQL - Como cambiar el formato de las fechas en SQL

 
Vista:

Como cambiar el formato de las fechas en SQL

Publicado por Tony (1 intervención) el 27/06/2015 22:40:30
Buenas, estaba haciendo algunos ejercicios de SQL y quiero hacer lo siguiente.

Tengo una tabla con usuarios de un videoclub, en la cual, uno de los campos es un id primario (PK) y tambien tengo una fecha, (Fecha DATE, formato -> (dd-mm-yyyy)). Pues bien, ya tengo varios registros (filas) insertados en dicha tabla, y queria saber como podría modificar el formato de la fecha para que en lugar de aparecer con el formato (dd-mm-yyyy) aparezca con el formato (dd-MON-yyyy) y sin tener que borrar los registros que ya he insertado. ¿Como sería la sentencia SQL?.

Yo he intentado lo siguiente:

UPDATE dvd
Set Fecha = (select to_char(e.Fecha, 'dd/MON/yyyy')
from dvd e
Group by e.id
)
Where id = e.id;

Pero sin exito, ya que el alias 'e' no puedo usarlo fuera de la subconsulta.
Gracias de antemano y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Como cambiar el formato de las fechas en SQL

Publicado por Rafael (111 intervenciones) el 29/06/2015 12:43:25
Hola:

Por lo que veo estas usando oracle como base de datos (la funcion to_char me lo indica).

Como sea comentarte las bases de datos guardan las fechas como un entero, realmente lo que ves (el formato) en el caso de oracle depende de un parametro de sesion mira:

1
2
3
4
5
6
alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';
SELECT SYSDATE FROM DUAL;
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SELECT SYSDATE FROM DUAL;
alter session set nls_date_format='dd-MON-yyyy hh24:mi:ss';
SELECT SYSDATE FROM DUAL;

La salida es algo asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Session altered.
 
SYSDATE
---------------------
29/06/2015 12:42:46
1 row selected.
Session altered.
 
SYSDATE
---------------------
2015-06-29 12:42:46
1 row selected.
Session altered.
 
SYSDATE
----------------------
29-JUN-2015 12:42:46
1 row selected.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Como cambiar el formato de las fechas en SQL

Publicado por leonardo_josue (1173 intervenciones) el 29/06/2015 16:57:42
Hola a todos;

Al margen de lo que ya te comentó Rafael, aquí cabe hacer un comentario. Una cosa es el formato con el que se almacenan las fechas en cualquier motor de BD's y otra cosa es el formato con el que recuperas o "muestras" la información a los usuarios... es decir, a ti no de debe importar si la fecha se almacena en formato ANSI (que es el estándar por defecto en la mayoría de los motores de BD's yyyy-mm-dd) o si se almacena en cualquier otro formato que se te ocurra.

Las soluciones que muestra Rafael efectivamente te pueden servir, pero me parece que es como querer comprar una vaca con tal de conseguir un poco de leche para el cereal.

Insisto en el punto, el cómo se almacenan las fechas NO ES RELEVANTE PARA MOSTRAR LOS DATOS... ¿en qué te complica hacer un SELECT TO_CHAR... para mostrar la información como quieres?

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar