如何将字符串显示为日期? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我有一个列(字符串(8))包含12032008之类的数据,我必须将其显示为12/03/2008。我该怎么做检索查询?

mysql sql
2个回答
2
投票

在mysql中首先使用STR_TO_DATE将其转换为日期对象,然后格式化使用DATE_FORMAT

SELECT DATE_FORMAT(STR_TO_DATE('12032008','%d%m%Y'),'%d/%m/%Y')

但理想情况下,您不应将日期或日期时间保存为表中的字符串,这将使mysql和您的事情变得复杂

Demo


2
投票

您在这里做的最合适的事情是停止在文本列中存储日期信息。相反,把12032008放入真正的datetime专栏。从长远来看,这将使您的生活变得最简单。如果你不能在短期内做到这一点,这里有两个选项供你考虑。

简短的方法,只使用基本字符串函数:

SELECT
    CONCAT(LEFT(col, 2), '/', SUBSTRING(col, 3, 2), '/', RIGHT(col, 4)) AS output
FROM yourTable;

更长的方法,也许是更好的长期解决方案,首先将日期字符串转换为日期,然后使用您想要的格式将其转换回字符串:

SELECT
    DATE_FORMAT(STR_TO_DATE(col, '%d%m%Y'), '%d/%m/%Y') AS output
FROM yourTable;

Demo

© www.soinside.com 2019 - 2024. All rights reserved.