Excel列未正确显示日期格式

时间:2017-06-23 07:17:37

标签: sql excel

我正在尝试解决此问题,其中我的Excel列未正确显示日期格式。

this

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

  1. 选择列。
  2. 选择数据。
  3. 选择文字到列
  4. 选择分隔并完成。
  5. 但是,我想跳过所有这些步骤,并在我启动批处理文件时立即打印出日期。有没有解决方案?

    更新

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

      

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

    然而,如果没有这种格式,它就会把它搞砸,就像最后3个数据一样。

    更新

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

      

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

    然而,上面的代码返回数据就像最后三行[Image]

    一样

    我需要把这些代码放在一起。

      

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

1 个答案:

答案 0 :(得分:0)

我做了一些研究,似乎这个问题很难连接到excel。从CSV导入后,它会尝试自动猜测数据格式,如果您的数据包含毫秒,则会应用这种糟糕的mm.ss.0格式。

您可以通过从数据中删除毫秒来缓解此问题:

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

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