有人能解释一下为什么这个不起作用吗?我已经在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谢谢
安东尼
发布于 2013-01-29 23:01:28
看起来您只是将DATETIME的日期部分赋给了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;
ENDhttps://stackoverflow.com/questions/14585743
复制相似问题