SQL作为文本进入Excel

时间:2016-04-20 17:33:13

标签: sql excel excel-vba vba

我从SQL服务器中提取的数据正在显示作为日期或数字,但数据似乎存储作为文本。例如,如果我输入数字值为1的数据,则单元格中将显示“1”(没有引号)但Excel不会将其识别为数字 - 我无法对其执行任何数学运算并且它赢了“被识别为数字。我可以通过选择单元格并进行F2 + Enter来解决这个问题。

为了澄清,SQL数据未在Excel中格式化为文本。改变格式并不能解决我的问题。无论我制作单元格的格式如何,单元格中的实际数据都不会被Excel识别为数字或日期。我必须手动选择和F2 + Enter。

select distinct vl.Property As 'Property'
, vl.Property As 'Property number'
, vl.LeaseID as 'Lease ID'
, vl.priorleaseid as 'Prior lease ID'

from realpage_uds.dbo.property p

inner join realpage_uds.dbo.vwsa_lease vl
on p.propertyid = vl.propertyid


where p.name like '%Name%'

vl.LeaseID就是一个很好的例子。它是数据类型“T-IDNumeric”,系统类型“数字”但我无法选择一个leaseID并在Excel中执行任何算术。

我通过以下方式将SQL数据提取到Excel中:

  1. 转到“数据”标签,点击“获取外部”下的“来自其他来源” 数据“
  2. 选择“从SQL服务器”,输入要连接的服务器名称
  3. 连接到数据库并在数据库中选择随机表
  4. 单击“完成”,然后选择将数据作为表或数据透视表拉入。我用过这两个,他们都有这个问题。
  5. 最后,更新连接属性下的SQL查询,并将查询更改为我键入的所需查询。然后我选择“SQL”然后点击OK。
  6. 还有其他人经历过这个吗?有没有办法让SQL数据作为数字和日期输入,而不必手动选择单元格和F2 + Enter来让Excel识别数据?

    或者,如果无法改变SQL数据的输入方式,我是否可以实现将电子表格中的所有文本数据更改为数字或日期值的宏?

    非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

不会FORMAT(<<your field>>,'#') AS <<your alias>>解决您的问题吗?尝试使用&#39; d&#39;为了约会。我没有太多从SQL Server中提取数据的经验,但在Access中我是如何尝试解决此问题的。

答案 1 :(得分:0)

我和Dates有类似的问题。 Excel仅将它们识别为字符串。为了解决这个问题,我创建了一个视图,将Date转换为Int,然后设置excel将Int列识别为日期。

要将日期转换为Excel日期整数,您可以使用此功能:

DATEDIFF(day,'1899-12-30',@yourDate)

我没有使用数字类型的经验,但您可以尝试将其转换为适用于Excel的decimal(18,4)

以上适用于我使用Azure SQL。