0

我正在使用 MySQL,在转换日期时遇到了一些问题。我有一个数据格式的日期列,Mon, 22 Jul 2013 07:55:37 GMT我想提取

Mon, 22 Jul 2013

当我写这段代码时

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

但是当我运行这段代码时,我收到了这个错误

FUNCTION rss.DATEPART does not exist

请帮助我解决这个问题。提前致谢。

4

5 回答 5

2

为此目的使用DATE_FORMAT函数。您还可以使用DATE函数仅提取日期部分。

于 2013-08-06T12:28:36.550 回答
1

DATEPARTMySQL 中不存在该函数。尝试使用 DATE_FORMAT。例如:

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

当然根据您的需要进行调整。

于 2013-08-06T12:28:19.617 回答
1

如果您必须在 MySQL 而不是在表示层中执行此操作

Date_Format()

于 2013-08-06T12:29:21.827 回答
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

作为您的问题,如果数据格式“Mon, 22 Jul 2013 07: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'
    )
;
于 2013-08-06T13:38:59.390 回答
0

因为您的列格式是Mon, 22 Jul 2013 07:55:37 GMT

你可以使用这个:

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

解释:这将选择左边的前 16 个字符。

于 2013-08-06T12:41:24.850 回答