2013-08-06 97 views
0

我正在使用MySQL,我在轉換日期時遇到了一些問題。我有一個日期列,其中的數據格式是這樣Mon, 22 Jul 2013 07:55:37 GMT,我想提取MySQL日期轉換錯誤

Mon, 22 Jul 2013 

當我寫這篇代碼

SELECT DATEPART(pubdate) FROM rss.`RSS_FEED`; 
LIMIT 5; 

但是當我運行這段代碼,我得到這個錯誤

FUNCTION rss.DATEPART does not exist 

請幫我解決這個問題。提前致謝。

+0

日期格式是一個演示文稿問題,因此應該由您的表示層(例如報表,應用程序等)處理。請直接回答您的問題:'DatePart()'不是MySQL函數。 https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html – gvee

回答

1

DATEPART函數在MySQL中不存在。嘗試使用DATE_FORMAT。例如:

select DATE_FORMAT(pubdate,'%d/%m/%Y')

調整你的課程的需求。

2

爲此目的使用DATE_FORMAT函數。您還可以使用DATE函數來僅提取日期部分。

0

爲你列的格式是Mon, 22 Jul 2013 07:55:37 GMT

您可以使用此:

SELECT LEFT(pubdate,16) as yourDate FROM rss.`RSS_FEED` 
    LIMIT 5; 

解釋:這將選擇左側的前16個字符。

0

如果數據字段的數據類型DATETIME,以下是解決方案。

select id,mydate,date_format(mydate,'%a,%d,%b,%Y') from tbl_name 

符號:

where 
%a gives Abbreviated weekday name eg(Sun...Sat) 
%d gives Day of the month in numeric eg(00...31) 
%b gives Abbreviated month name eg(Jan...Dec) 
%Y gives Numeric Year in four digits 

至於你的問題,如果數據格式「星期一,2013年7月22日7時55分37秒GMT」是字符串,先將其轉換日期格式,然後作爲您需要的日期格式檢索。

SELECT 
    date_format(
     STR_TO_DATE('May 1, 2013 09:30:17 GMT','%M %d,%Y %h:%i:%s GMT'), 
     '%a, %d, %b, %Y' 
    ) 
;