如何在MySQL中使用STR_TO_DATE将“Mon,23 Sep 2013 07:00:00 GMT”作为字符串转换为“2013-09-23”?

时间:2013-09-29 14:14:25

标签: mysql

我有一个很长的查询,表之间有比较,一个表有这种格式:

"Mon, 23 Sep 2013 07:00:00 GMT"

另一张表有这种格式:

"2013-09-23"

如何进行查询,基本上可以执行

SELECT * from table1, table2
WHERE table1.date = table2.date

这样的东西?

select column1, column2, DATE_FORMAT(STR_TO_DATE(table2.`column2`,'%a, %d %m %Y %I:%i:%s'),'%Y-%m-%d') as convert_date 
FROM table1, table2

1 个答案:

答案 0 :(得分:1)

鉴于这两个日期属于同一时区,您可以这样做:

SELECT
    something
FROM
    longformat,
    shortformat
WHERE
    STR_TO_DATE(longformat.date,"%a, %d %b %Y") =
    STR_TO_DATE(shortformat.date, "%Y-%m-%d");

其中longformat包含格式为"Mon, 23 Sep 2013 07:00:00 GMT"的日期,而shortformat包含格式为"2013-09-23"的日期。