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-17
和 6/17/2015 12:00:00 AM
值只是此值的不同文本 表示。 文本 表示取决于您当前的文化设置and/or CSV 文件设置等。
因此,我从我的 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-17
和 6/17/2015 12:00:00 AM
值只是此值的不同文本 表示。 文本 表示取决于您当前的文化设置and/or CSV 文件设置等。