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

时间:2015-06-09 06:30:46

标签: c# sql asp.net sql-server datatable

因此,我在我的表格中发布了一个类似SELECT *的测试查询,其中start_date列的数据类型为Date。然后将此查询转换为DataTable,之后将其转换为CSV文件。在SSMS中,查询仅返回日期,如您所见:

SSMS Query

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

CSV file

我想知道的是为什么。为什么DataTable表现得像这样?我无法在DataTable的文档中找到直接答案。

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

谢谢!

2 个答案:

答案 0 :(得分:4)

Frame.Navigate使用.NET DateTime类,当创建CSV时,它可能会使用await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => this.Frame.Navigate(typeof(MyPage))); 方法转换为字符串。该方法使用当前Thread的Culture设置中的日期格式。创建CSV时,您需要使用DataTable overload来指定所需的DateTime格式。

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

答案 1 :(得分:3)

我认为这不是DataTable问题。

使用date type CLR数据类型映射的T-SQL DateTime。这意味着,即使此类型仅包含SQL Server中的日期部分,当您将其映射到DateTime时,它的时间部分默认为midnight 。 / p>

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