DataTable 修改日期格式 - 为什么?

DataTable Modifies Date Format - WHY?

因此,我从我的 table 发出一个测试查询,例如 SELECT *,其中 start_date 列的数据类型为 Date。然后将此查询制作成数据表,然后将其转换为 CSV 文件。在 SSMS 中,查询 returns 只有日期,正如您在此处看到的:

但是当我下载转换后的 CSV 文件时,日期是这样的:

我想知道的是为什么。为什么 DataTable 会这样?我在 DataTable.

的文档中找不到直接的答案

这是在带有 SQL Server 2008 的 ASP.NET 4.0 C# 平台上。

谢谢!

DataTable 使用 .NET DateTime class,它可能在创建 CSV 时使用 DateTime.ToString() 方法转换为字符串。该方法使用当前 Thread 的 Culture 设置中的日期格式。您需要在创建 CSV 时使用 DateTime.ToString(string format) overload 来指定所需的 DateTime 格式。

Here's .NET 平台上特定于文化的日期时间格式的一般描述。

我认为这不是 DataTable 问题。

T-SQL date type mapped with DateTime CLR data type. That means, even this type contains only date part in SQL Server, when you map this to DateTime, it's time part will be midnight 默认.

除此之外,此 2015-06-176/17/2015 12:00:00 AM 值只是此值的不同文本 表示。 文本 表示取决于您当前的文化设置and/or CSV 文件设置等。