如何在MySQL查询中将日期YYYYMMDD转换为YY-MM-DD

5

我有一个日期列,它的格式为YYYYMMDD或20120101。这是因为SAP以这种格式存储它,所以不能更改。

在MySQL查询中,如何将其转换为YYYY-MM-DD格式?在DB2中,我使用了to_date()函数。

在MySQL中,我尝试使用STR_TO_STRING()函数,但它返回'null'。

  SELECT STR_TO_DATE(VBAP.ERDAT,'%Y-%m-%d') FROM VBAP

你的日期列为什么需要有“格式”呢?为什么不直接使用DATE类型,在查询时使用参数化SQL,避免首先将其转换为字符串呢? - Jon Skeet
1
因为这就是SAP在DB2中存储数据的方式,不幸的是。 - kouton
当你有这样的限制时,如果没有限制,更好的解决方案会很明显,那么在问题中解释这个限制是值得的。 - Jon Skeet
好的,我认为提到现有的格式是这样的就足够了。我已更新我的问题。 - kouton
哈,刚看到这个...SAP也一样。摇拳头 :) - Darragh Enright
1个回答

10

这个有效。

date_format(str_to_date(VBAP.ERDAT, '%Y%m%d'),'%Y-%m-%d')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接