有人可以解释为什么这不起作用?我在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
由于
安东尼
答案 0 :(得分:0)
看起来你只是在DATETIME的DATE部分指定datevar
。
试试这个:
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