0

有人可以解释为什么这不起作用吗?我在 phpMyAdmin 中尝试过,在 SQLYog 中尝试过修改版本

CREATE FUNCTION `manageDate`(a VARCHAR(200),b DATETIME) RETURNS DATETIME
BEGIN
DECLARE datevar DATETIME;
IF (a REGEXP '[0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4}') THEN 
SET datevar = STR_TO_DATE(SUBSTRING(TRIM(a),-8,8),'%d/%c/%y');
ELSE 
SET datevar = DATE_FORMAT(b,'%Y-%c-%d');
END IF;
RETURN datevar;
END

谢谢

安东尼

4

1 回答 1

0

看起来您只分配datevar了 DATETIME 的 DATE 部分。

尝试这个:

CREATE FUNCTION `manageDate`(a VARCHAR(200),b DATETIME) RETURNS DATETIME
BEGIN
DECLARE datevar DATETIME;
IF (a REGEXP '[0-9]{1,2}/[0-9]{1,2}/[0-9]{2,4}') THEN 
SET datevar = STR_TO_DATE(SUBSTRING(TRIM(a),-8,8),'%d/%c/%y');
ELSE 
SET datevar = DATE_FORMAT(b,'%Y-%c-%d %H:%i:%s');
END IF;
RETURN datevar;
END
于 2013-01-29T15:01:27.580 回答