MySQL - Funciones en Mysql

 
Vista:
sin imagen de perfil

Funciones en Mysql

Publicado por DALSOM (23 intervenciones) el 23/08/2010 02:33:35
Hola a todos.

He estado trtatando de crear algunas funciones, pero al parecer sigo sin compreder muchas cosas de Mysql.

Actualmente, estoy intentando de recrear la funcion getdate de Sql, creando una funcion con el mismo nombre, pero que utiliza la funcion now de mysql. Pero me ha dado errores por montones.

Esto es debido a que en mi programa tengo muchos getdate() para sql, y me sale mas comodo, hacer una funcion con ese nombre, que cambiar todos los llamados a esta funcion.

Lo que intento es algo asi:

drop function if exists 'Getdate'
create function getdate() returns datetime begin
declare lret datetime;
set lret = now();
return lret;
end

Pero me da un error que no me indica que es lo que esta pasando, aun intente solo declarar la variable, me da el mismo error.

Alguien podria ayudarme a corregir esta funcion.

De antemano muchas gracias a todos por tomarse tiempo para mis tonterias.

Saludos, Dalsom.
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

RE:Funciones en Mysql

Publicado por martin (150 intervenciones) el 23/08/2010 04:04:39
DELIMITER $$
drop function if exists Getdate$$
create function getdate() returns datetime begin
declare lret datetime;
set lret = now();
return lret;
end$$
DELIMITER ;

esto me funciono.

saludos,
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

RE:Funciones en Mysql

Publicado por martin (150 intervenciones) el 23/08/2010 04:05:06
DELIMITER $$
drop function if exists Getdate$$
create function getdate() returns datetime begin
declare lret datetime;
set lret = now();
return lret;
end$$
DELIMITER ;

esto me funciono.

saludos,
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

RE:Funciones en Mysql

Publicado por DALSOM (23 intervenciones) el 25/08/2010 05:47:51
Muchisimas gracias Martin, pero ahora tengo otra pregunta, ya que habia intentado algo parecido y no pude resolver el problema con eso.

Sucede, que habia utilizado el delimitador como // , y no me funciono, tambien como ** y lo mismo.

Entonces, cual es la regla del delimitador?

Te pregunto porque me desconcierta que para una funcion funcione, (en mi caso, la emulacion de mi funcion padl que utilizo en vez de la funcion nativa lpad) y para otra no, como fue el caso de la funcion anterior.

Una pequena diferencia, en la linea del drop function y en la linea end tengo un ; y no el delimitador especificado, pero aun asi, funciona.

De verdad muy agradecido por tu ayuda.
Saludos,
Desde la Rep. Dominicana,
DALSOM.
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

RE:Funciones en Mysql

Publicado por Gonzalo GC (339 intervenciones) el 25/08/2010 13:58:02
La regla del delimitador es simple: No uses caracteres que puedan causar conflictos por su uso.
Las herramientas propias de MySQL, como el Query Browser y el Workbench, así como en el manual de referencia de MySQL (http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html) usan por default "$$", por lo que te recomiendo hacer eso. Fíjate que Martín te lo ha puesto así.
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