簡體   English   中英

MySQL:將多種varchar格式轉換為DateTime

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM