如何将字符串显示为日期?

时间:2017-12-19 06:22:29

标签: mysql sql

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

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

Demo