【问题标题】:SQL data connection extract loses format in ExcelSQL 数据连接提取在 Excel 中丢失格式
【发布时间】:2019-06-30 06:59:41
【问题描述】:

我有一个 Excel 视图,它利用 SQL Server 连接到其数据库的数据。

提取的部分数据是日期,SQL 查询以 103 (dd/mm/yyyy) 格式请求该日期。

convert (varchar(11), [mytable].[myDate], 103)'my date'

如果我直接在 SQL Server 管理器中运行 SQL 代码,将其复制并直接粘贴到 Excel 中就可以了。

但是,一旦我将它作为 Excel 中的 SQL 数据连接运行,数据似乎会丢失其格式并变成文本字符串。 (请注意下图中的日期如何向左对齐)

我能找到的唯一解决方案是在 Excel 的“文本到列”中包含日期的列并将格式设置为 DMY。然而,这只是一个短期修复,因为每次刷新数据连接时,格式都会再次丢失。

Excel 中的外部数据属性设置为保留单元格格式。

除了编写一些 VBA 以在数据刷新时自动“文本到列”格式之外,任何人都有任何想法。

日期在底层数据库中存储为 dd/mm/yyyy hh:mm:ss,我需要以不同的格式将其提取为 103 吗?

谢谢大家。

【问题讨论】:

  • 为什么不直接将数据请求为 dd/mm/yyyy hh:mm:ss 并使用单元格格式根据需要对其进行格式化。
  • 正如萨尔曼所指出的,我还认为您应该只从数据库请求数据作为 DATETIME,而不是“看起来像日期的字符串” - excel 将知道如何处理日期、格式使用您喜欢的日期格式的列。不要使用数据库将数据从原生格式(int、date、float 等)转换为字符串,然后希望前端可以将其解析回原生进行处理;将其保持为原生并让前端以原生方式使用它

标签: sql sql-server excel


【解决方案1】:

感谢萨尔曼/凯厄斯。修改 SQL 查询以采用本机格式,然后在前端使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2019-05-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    相关资源
    最近更新 更多