【问题标题】:Excel column does not properly show the date formatExcel 列未正确显示日期格式
【发布时间】:2017-06-23 07:17:36
【问题描述】:

我正在尝试解决我的 excel 列未正确显示日期格式的问题。

前三行与接下来的三行不同,因为我“双击”了列本身。我正在使用批处理文件提取所有这些数据,然后从我的数据库中提取数据,然后将其更改为可以在 excel 中查看的 .csv。我在网上搜索了解决方案,但被告知要执行以下步骤:

  1. 选择列。
  2. 选择数据。
  3. 选择文本到列
  4. 选择分隔并完成。

但是,我想跳过所有这些步骤,并在启动批处理文件时立即打印出日期。有什么解决办法吗?


更新:

使用此代码时,它将在 Excel 中很好地打印出日期。

选择格式(createddate,'yyyy-mm-dd hh:mm:ss') from testdb.dbo.company1;

但是,如果没有格式,它只会搞砸,就像最后 3 个数据一样。


更新

我正在使用此代码,它只返回时间。

从 testdb.dbo.company1 中选择 * 其中 datepart(month, CreatedDate) = datepart(month, getdate()) 和 datepart(day, CreatedDate) 和 datepart(year, CreatedDate) = datepart(year, getdate())

但是,上面的代码返回的数据就像最后三行 [图片]

我需要把那个代码和这个放在一起。

选择格式(createddate,'yyyy-mm-dd hh:mm:ss') from testdb.dbo.company1;

【问题讨论】:

  • 您在 CSV 中的原始值是多少?
  • 什么意思?当我期望得到 01/06/2017 00:25.0 时,我只得到 00:25.0
  • 如果我理解正确,您正尝试在 Excel 中查看/导入 CSV 文件。如果在文本查看器中打开它会是什么样子?
  • 当您在 Excel 中打开 CSV 文件时,Excel 将尝试解释这些值。如果它可以确定该值是日期/时间,它将显示为日期/时间。因此,使用 format 函数会有所帮助。如果这行得通,你为什么不直接使用它呢?如果您想了解更多关于为什么 Excel 无法正确显示其他三个日期/时间的信息,您需要在 Excel 以外的其他文件中打开 CSV 文件,并查看存储在 CSV 中的值。编辑您的问题并发布您在记事本中可以看到的数据。
  • 我正在使用批处理文件将数据库导入到 csv..

标签: sql excel


【解决方案1】:

我做了一些研究,似乎这个问题与 Excel 息息相关。从 CSV 导入后,它会尝试自动猜测数据格式,如果您的数据包含毫秒,它将应用这种糟糕的 mm.ss.0 格式。

您可以通过从数据中去除毫秒来缓解这种情况:

SELECT CONVERT(DATETIME2(0), createddate) FROM ...

提醒一下,您可以查看how Excel actually treats and stores dates

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多