我有一个包含12032008等数据的列(字符串(8)),我必须将其显示为12/03/2008。我该怎么做才能检索查询?
答案 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;
答案 1 :(得分:2)
在mysql中首先使用STR_TO_DATE
将其转换为日期对象,然后格式化使用DATE_FORMAT
SELECT DATE_FORMAT(STR_TO_DATE('12032008','%d%m%Y'),'%d/%m/%Y')
但理想情况下,你不应该将日期或日期时间保存为表格中的字符串,这会使mysql和你的事情变得复杂