Excel不会将date从mysql识别为date

我有MySQL数据库链接到SQL服务器。 在SQL服务器上,我正在使用DBCC TRACEON(8765)运行mysql查询过程。 其中一列是Date_entered,以iso格式返回值YYYY-MM-DD。 然后在Excel中,我有数据连接来运行此过程。 问题是Excel中的Date_entered,即使它的格式为YYYY-MM-DD,在Excel中不能被识别为date。 结果是我不能在数据透视表中分组这个字段。 我什至在MySQL尝试DATE_FORMAT,但在Excel中仍然没有运气。

有人有想法吗? Thx Petr

这听起来像Excel是看到作为文本string的值。 领先的空白可能导致excel无法识别date。 创build一个新列,并使用trim()函数删除和前导/尾随空格,他们尝试重新格式化date。

另外,你也可以用暴力手段来parsing年份,月份和date的string。 假设date总是按照你指定的格式:YYYY-MM-DD,试试这个:

 =DATE(LEFT(TRIM(A1),4),MID(TRIM(A1),6,2),RIGHT(TRIM(A1),2)) 

(这假设你的date在单元格a1)

您可以添加一列,并使用formula = value()并将其分配给Date_entered列

下面的mysql查询可能有帮助:

 SELECT date_format(str_to_date('2014-10-24','%Y-%m-%d'), '%m/%d/%Y') as FormattedDate; 

最终我通过修改SQL服务器上的过程来解决我的问题:

 BEGIN DBCC TRACEON(8765); SELECT *,CAST(CAST(year(calldate) AS varchar) + '-' + CAST(month(calldate) AS varchar) + '-' + CAST(day(calldate) AS varchar) AS DATETIME) as calldate2, datename(dw,calldate) as den FROM OPENQUERY(SugarCRM, 'SELECT * FROM crm.acm_ivr' ); END; 

代码的这个特殊部分“转换”了mysqldatecalldate到MS Excel calldate2可以识别的date:

 CAST(CAST(year(calldate) AS varchar) + '-' + CAST(month(calldate) AS varchar) + '-' + CAST(day(calldate) AS varchar) AS DATETIME) as calldate2