我正在使用 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
请帮助我解决这个问题。提前致谢。
为此目的使用DATE_FORMAT函数。您还可以使用DATE函数仅提取日期部分。
DATEPART
MySQL 中不存在该函数。尝试使用 DATE_FORMAT。例如:
select DATE_FORMAT(pubdate,'%d/%m/%Y')
当然根据您的需要进行调整。
如果您必须在 MySQL 而不是在表示层中执行此操作
如果数据字段的数据类型是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'
)
;
因为您的列格式是Mon, 22 Jul 2013 07:55:37 GMT
你可以使用这个:
SELECT LEFT(pubdate,16) as yourDate FROM rss.`RSS_FEED`
LIMIT 5;
解释:这将选择左边的前 16 个字符。