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

datevarDATETIME の 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 に答える