[英]MySQL:Convert multiple varchar formats into DateTime
我正在嘗試將具有多種格式的varchar日期轉換為標准DateTime格式,以便可以比較它們之間的日期。 我寫了一條SQL語句,我相信它是正確的,但是我知道很少有SQL可以發現錯誤。 我當前的代碼錯誤出來了。 這是我所擁有的:
DELIMITER //
CREATE FUNCTION CUSTOM_DATE_CONVERT ( d VARCHAR(50) )
RETURNS DATETIME
BEGIN
DECLARE date DATETIME;
IF STR_TO_DATE
( d, "%Y-%m-%d %H:%i:%s" ) IS NOT NULL THEN SET date = STR_TO_DATE( d, "%Y-%m-%d %H:%i:%s" );
ELSE
IF STR_TO_DATE( d, "%H:%i:%s %b %d, %Y" ) IS NOT NULL THEN SET date = STR_TO_DATE( d, "%H:%i:%s %b %d, %Y" );
END IF;
RETURN date;
END//
DELIMITER ;
SELECT id, CUSTOM_DATE_CONVERT( payment_date ) FROM `paypal_table`
我的錯誤是:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 12
我在正確的軌道上嗎? 任何幫助是極大的贊賞。
看來您忘記了加入ENDIF
IF STR_TO_DATE ... THEN SET date = STR_TO_DATE( d, "%Y-%m-%d %H:%i:%s" );
ELSE
IF ...THEN SET date = STR_TO_DATE( d, "%H:%i:%s %b %d, %Y" );
END IF; /* close second if */
END IF; /* close first if */
看例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.