0

我正在尝试创建一个 MySQL 函数,在其中提供日期列,然后使用以下函数将日期返回到新列中。这就是我所拥有的。select 语句在函数之外工作正常 - 我在那里测试过。任何人都可以帮助实现此功能。谢谢

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
4

2 回答 2

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
于 2012-03-17T15:03:52.073 回答
0

为什么要重新发明轮子?

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_dayofweek

于 2012-03-17T15:04:18.797 回答