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