2012-03-17 58 views
0

我正在尝试创建一个MySQL函数,我提供日期列,并使用下面的函数返回新列。这是我的。 select语句在函数外部正常工作 - 我在那里测试它。任何人都可以帮助获得这个功能。 感谢日期到日期函数 - MySQL - 需要帮助

CREATE FUNCTION `GetWeekDayNameOfDate`(`Date1` date) 
RETURNS VARCHAR(50) 
LANGUAGE SQL 
DETERMINISTIC 
CONTAINS SQL 
SQL SECURITY DEFINER 
COMMENT '' 
BEGIN 

DECLARE DayName1 varchar(50) 

SELECT 
CASE DATE_FORMAT(Date1 , '%w') 
WHEN 0 THEN 'Sunday' 
WHEN 1 THEN 'Monday' 
WHEN 2 THEN 'Tuesday' 
WHEN 3 THEN 'Wednesday' 
WHEN 4 THEN 'Thursday' 
WHEN 5 THEN 'Friday' 
WHEN 6 THEN 'Saturday' else null end; 


RETURN DayName1; 

END 

回答

0

内置功能DAYNAME(date)

UPD的空子。

如果要分配一些值,select语句返回到变量yourvariable,你应该使用select ... into yourvariable

CREATE FUNCTION `GetWeekDayNameOfDate`(`Date1` date) 
RETURNS VARCHAR(50) 
LANGUAGE SQL 
DETERMINISTIC 
CONTAINS SQL 
SQL SECURITY DEFINER 
COMMENT '' 
BEGIN 

DECLARE DayName1 varchar(50); 

SELECT 
CASE DATE_FORMAT(Date1 , '%w') 
WHEN 0 THEN 'Sunday' 
WHEN 1 THEN 'Monday' 
WHEN 2 THEN 'Tuesday' 
WHEN 3 THEN 'Wednesday' 
WHEN 4 THEN 'Thursday' 
WHEN 5 THEN 'Friday' 
WHEN 6 THEN 'Saturday' else null end INTO DayName1; 


RETURN DayName1; 

END 
+0

谢谢 - 多数民众赞成在伟大。我希望得到这个工作,虽然作为学习什么是错的材料 – Kes 2012-03-17 15:05:36