我正在使用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
请帮我解决这个问题。提前谢谢。
答案 0 :(得分:2)
出于此目的使用DATE_FORMAT功能。您还可以使用DATE功能仅提取日期部分。
答案 1 :(得分:1)
MySQL中不存在DATEPART
函数。尝试使用DATE_FORMAT。例如:
select DATE_FORMAT(pubdate,'%d/%m/%Y')
根据您的需要进行调整。
答案 2 :(得分:1)
如果您必须在MySQL中而不是在表示层中执行此操作
答案 3 :(得分:0)
,因为您的列格式为Mon, 22 Jul 2013 07:55:37 GMT
你可以用这个:
SELECT LEFT(pubdate,16) as yourDate FROM rss.`RSS_FEED`
LIMIT 5;
EXplanation:这将从左侧选择前16个字符。
答案 4 :(得分: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日07:55:37 GMT”是字符串,请先将其转换为日期格式,然后检索为您所需的日期格式。< / p>
SELECT
date_format(
STR_TO_DATE('May 1, 2013 09:30:17 GMT','%M %d,%Y %h:%i:%s GMT'),
'%a, %d, %b, %Y'
)
;