我需要将一个varchar转换为日期时间,以便找出最大值和最小值。我拥有的varchar就像这样的格式:'星期一,2010年5月24日21:24:39 +0000',我需要投射到:'2010-05-24 21:24:39'。我正在使用mysql服务器。需要帮助。
答案 0 :(得分:3)
SELECT STR_TO_DATE(Myvarchar, '%a, %d %b %Y %T') FROM table1
这会将其转换为列中的格式,然后您可以使用该格式运行小于和大于,最小和最大查询。您可以在其上运行查询,将其保留为字符串,但它当然比具有正确日期时间类型的新列而不是varchar具有更低的性能。如果没有太多行,您将不会注意到性能问题。
所以你最终可能会运行这个:
SELECT MAX(STR_TO_DATE(Myvarchar, '%a, %d %b %Y %T')) FROM table1
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date