Excel无法将mysql中的日期识别为日期



我有链接到SQL服务器的mysql数据库。在SQL服务器上,我使用DBCC TRACEON(8765)的过程来运行mysql查询。其中一列是Date_entered,返回iso格式YYYY-MM-DD的值。然后在Excel中,我有数据连接来运行此过程。问题是,Excel中的Date_entered(即使其格式为YYYY-MM-DD)在Excel中无法识别为日期。结果是,我无法在数据透视表中对该字段进行分组。我甚至在mysql中尝试了DATE_FORMAT,但在Excel中仍然没有成功。

有人有主意吗?Thx Petr

听起来Excel将该值视为文本字符串。前导空格可能导致excel无法识别日期。创建一个新列,并使用trim()函数删除和前导/尾随空格,他们试图重新格式化日期。

或者,您可以强行使用它,并解析年份、月份和日期的字符串。假设日期始终是您指定的格式:YYYY-MM-DD,请尝试以下操作:

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

(假设您的日期在单元格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;

代码的这一特定部分将mysql日期calldate"转换"为MS Excel可识别的日期calldate2:

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

最新更新