我有mysql数据库链接到SQL服务器。 在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
答案 0 :(得分:1)
听起来Excel将该值视为文本字符串。领先的空白区域可能导致excel无法识别日期。创建一个新列并使用trim()函数删除前导/尾随空格,他们尝试重新格式化日期。
或者你可以强制它并解析年,月和日的字符串。假设日期始终采用您指定的格式:YYYY-MM-DD,请尝试:
=DATE(LEFT(TRIM(A1),4),MID(TRIM(A1),6,2),RIGHT(TRIM(A1),2))
(假设您的日期在单元格a1中)
答案 1 :(得分:0)
您可以添加列并使用formula = value()并将其分配给Date_entered列
答案 2 :(得分:0)
下面的mysql查询可能会有所帮助:
SELECT date_format(str_to_date('2014-10-24','%Y-%m-%d'), '%m/%d/%Y') as FormattedDate;
答案 3 :(得分:0)
最终我通过将SQL Server上的过程修改为:
解决了我的问题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