Microsoft.ACE.OLEDB.12.0导出数据问题

dzxccsu 2016-01-06 02:23:07
测试表:

CREATE TABLE TEST(AA FLOAT)
--插入数据
INSERT INTO TEST
SELECT 8859.06 as AA
UNION ALL
SELECT 20442.29 as AA
UNION ALL
SELECT 61125.20 as AA
UNION ALL
SELECT 100001.41 as AA
UNION ALL
SELECT 1127331.86 as AA
--导出数据:
insert into OPENROWSET( 'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\TEST.XLSX;','select * from [test$]')
SELECT * FROM TEST
--导出TEST.XLSX结果:
AA
8859.06
20442.3
61125.2
100001
1.12733e+006
求解:小数位去哪呢,长了都变成了科学计算法?有什么方法或参数可以原样导出
...全文
329 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-01-06
  • 打赏
  • 举报
回复
你导出的内空是正确的,这是浮点的表示法,导入到EXCEL时转正文本 你在导出时转换如: 保留两位小数
SELECT cast(AA AS DECIMAL(38,2)) AS AA  FROM TEST
中国风 2016-01-06
  • 打赏
  • 举报
回复
你导出的内容是正确的,这是浮点的表示法,浮点直接转为文本时会显示你贴出来的格式
dzxccsu 2016-01-06
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
引用 2 楼 dzxccsu 的回复:
[quote=引用 1 楼 roy_88 的回复:] 那是EXCEL的问题,默认格式为浮点,你改改文件格式
改成什么格式?文本?
在excel选中所有的单元格,右健设置格式,可选择显示格式,比如:科学法(两位小数)或自定义[/quote] 不好意思,按照你的方法,测试单列或者所有单元格显示格式为数值-1234.10或者科学法(两位小数)均没有用,导出的内容还是一样
中国风 2016-01-06
  • 打赏
  • 举报
回复
引用 2 楼 dzxccsu 的回复:
引用 1 楼 roy_88 的回复:
那是EXCEL的问题,默认格式为浮点,你改改文件格式
改成什么格式?文本?
在excel选中所有的单元格,右健设置格式,可选择显示格式,比如:科学法(两位小数)或自定义
dzxccsu 2016-01-06
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
那是EXCEL的问题,默认格式为浮点,你改改文件格式
改成什么格式?文本?
中国风 2016-01-06
  • 打赏
  • 举报
回复
那是EXCEL的问题,默认格式为浮点,你改改文件格式

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧