【问题标题】:Excel Stripping off Leading Zeros in a ViewExcel剥离视图中的前导零
【发布时间】:2015-08-15 06:02:39
【问题描述】:

我有一个 SQL Server 视图,我正在将其放入一个 excel 宏工作簿中。但是,其中一个日期字段被 excel 视为数字,其前导 0 随后被剥离。是否有可以将我的日期字段转换为 SQL 中的数据类型,以便在将视图导入工作簿时 Excel 不会去掉它的前导零?

【问题讨论】:

  • 您对情况的描述并没有真正解释您用于导入 SQL 数据的方法。通常,单元格将接收原始数据,并且单元格格式会将前导零应用于日期.如果您想将其作为文本引入(不是真正的首选操作),那么您可以将视图重写为 SELECT CHAR(39)+CONVERT(varchar(10), [myDate]) FROM ... 之类的东西,但这是对 SQL 将如何输出日期的解释。
  • 您系统的 短日期 区域设置是否设置为 d/m/yyyy 或 dd/mm/yyyy(或 m/d/yyyy 与 mm/dd/yyyy) ?设置系统的区域设置(Excel 读取和使用)可能足以在日期上获得前导零。
  • 要在 excel 中保持前导零,将 ' 放入 sql 例如select '''+column showwithzero from table

标签: sql excel sql-server-2008 excel-formula views


【解决方案1】:

您是如何提取数据的? AFAIK 没有 Excel 范围的设置来保留前导零,但是有一些方法可以保留它们,或者将它们添加回来:

来自Microsoft 如果您使用的是导入向导,

导入文本数据时将数字转换为文本

在文本导入向导的第 3 步中(在数据选项卡上,在获取 外部数据组,单击从文本),您可以选择的列 包含信用卡号的数据,然后明确选择 文本列数据格式。

或者,如果您已经导入数据并且有模式/结构,您可以创建自定义格式:

使用自定义格式保留前导零

如果您只想在工作簿中解决问题,因为它是 不被其他程序用作数据源,您可以使用自定义或 保留前导零的特殊格式。这适用于数字代码 包含少于 16 位的数字,

此外,您可以将数字代码中的一些数字分开 通过将这些破折号添加到自定义格式来使用破折号。例如, 为了使电话号码更具可读性,您可以在 国际代码、国家/地区代码、区号、 前缀和最后几个数字。

编辑:我不热衷于 SQL,所以只能提供更多以 Excel 为中心的想法:/

【讨论】:

  • 我从经验中发现,最好的方法是将数据以尽可能原始的状态带入工作表,并在您有真实日期和实数后处理任何漂亮的格式问题工作表,所以这是一个响应点(恕我直言)。
猜你喜欢
  • 2017-01-15
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多