Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

funciones en postgresql

Estas en el tema de funciones en postgresql en el foro de Bases de Datos General en Foros del Web. Hola a todos, tengo una duda que quisiera que me ayuden: para dar un formato a un fecha se hace con to_char(CURRENT_TIMESTAMP,'Day DD-MM-YYYY HH:MM:SS') el ...
  #1 (permalink)  
Antiguo 01/10/2003, 20:17
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
funciones en postgresql

Hola a todos, tengo una duda que quisiera que me ayuden:
para dar un formato a un fecha se hace con to_char(CURRENT_TIMESTAMP,'Day DD-MM-YYYY HH:MM:SS') el problema es que me dice ej. Saturday cuando quiero Sábado

como puedo hacer una función para hacer ese cambio, teniendo en cuenta que sólo puedo construir la BD, no configurar el servidor, es decir quisiera hacer algo como:
select mifuncion(CURRENT_TIMESTAMP);

Gracias a todos por leer estas líneas
Jose A.
__________________
Jose A
  #2 (permalink)  
Antiguo 02/10/2003, 13:41
 
Fecha de Ingreso: octubre-2003
Mensajes: 2
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola, esto te puede servir:

create or replace function Day_Spa(timestamp)
Returns Text As
'Declare
Out_Day Text;
Num_Day SmallInt;
Begin
Select EXTRACT(DOW FROM $1)
Into Num_Day;

If Num_Day = 1 Then
Out_Day = ''LUNES'';
ElsIf Num_Day = 2 Then
Out_Day = ''MARTES'';
ElsIf Num_Day = 3 Then
Out_Day = ''MIERCOLES'';
ElsIf Num_Day = 4 Then
Out_Day = ''JUEVES'';
ElsIf Num_Day = 5 Then
Out_Day = ''VIERNES'';
ElsIf Num_Day = 6 Then
Out_Day = ''SABADO'';
Else Num_Day = 7 Then
Out_Day = ''DOMINGO'';
End If;

Return Out_Day;
End;
' LANGUAGE PLPGSQL;


La llamas como:

select Day_Spa(current_timestamp::timestamp);

Antes de crearla (desde psql copiar/pegar)
debes tener creado el lenguaje plpgsql.
Esto ultimo lo puedes hacer con:

$ createlang <nom_db> plpgsql

(obviamente como el usuario unix postgres)
  #3 (permalink)  
Antiguo 02/10/2003, 19:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
Muchas gracias, lo haré de inmediato
__________________
Jose A
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:03.