MySQL将1个结果定义为SELECT查询中的文本

时间:2015-03-06 16:06:05

标签: mysql excel

使用: MySQL Workbench & MySQL for Excel

我有一个12位数的返回数字,但是当使用任何方式导入到Excel时,会导致:1.20523E + 11.

我希望(需要)指定该值需要作为文本返回,以便通过MySQL for Excel完成查询而不会出现此错误。

我现有的查询:

Select  
    -- Get Order data --
        T5.orders_id As OID,                                                                                                                                      
        DATE_FORMAT(T5.date_purchased, '%Y-%m-%d') As ODate,                                                
        T3.products_name As PName,                                                                                                      
        T3.products_id As PID,  

        error:                                                                                                          
        DATE_FORMAT(T5.date_purchased,'%y%m%d%H%i%s') As DecRepID,
            -- This results in 1503070244
            -- Transaction ID to match with Payments

我需要将1503070244作为TEXT返回,以便excel导入它,而无需我转换文本。

我看过CONVERT& CAST然而,我无法让查询正常工作&他们解决了语法错误。

CONVERT(VARCHAR(12),(DATE_FORMAT(T5.date_purchased,'%y%m%d%H%i%s'))) As DecRepID,  

CAST会返回正确的值,但Excel不会将其识别为文本。

cast(DATE_FORMAT(T5.date_purchased,'%y%m%d%H%i%s') as char) As DecRepID  

我知道这很简单,但我找不到错误的原因。

有没有办法通过代码更正此问题,还是在导入Excel后我是否坚持使用后格式化?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用Shahkalpesh的想法,你可以做两件事:

1)您可以使用escaping

尝试' '\'' {/ 1}}
concat('\'', DATE_FORMAT(T5.date_purchased,'%y%m%d%H%i%s')) As DecRepID,  

2)您可以使用escaping

尝试' "'"
concat("'", DATE_FORMAT(T5.date_purchased,'%y%m%d%H%i%s')) As DecRepID,

通过转义',该列将导入到Excel:'1503070244这是您需要让Excel将其识别为文本以停止缩短的结果。

您可以在此处阅读更多内容:http://dev.mysql.com/doc/refman/5.7/en/string-literals.html