2

请高手帮忙...

我有一个数据表,我从具有数万条记录的 SQL Server 数据库中加载数据,并且我有一个将整个数据表输出到分隔文本文件的过程。

我这样做的过程具有以下几行代码:

For Each dtRow As DataRow In dtToWrite.Rows
     File.WriteLine(String.Join(strDelimitter, dtRow.ItemArray.Select(Function(Field) Field.ToString)))
Next 

基本上使用 string.join 函数从我的数据表中的每个数据行创建一个分隔字符串。

现在,我的问题是我从 SQL Server 中提取日期值,因此对于日期列,最终输出的值如下所示:

“2012 年 9 月 30 日上午 12:00:00”

而我只希望它显示:

“2012 年 9 月 30 日”

让我的数据仅输出数据表中的日期部分的最佳方法是什么?

谢谢!

4

3 回答 3

1

您不能像tgolisch状态一样在查询中返回日期的时间部分,或者只.Split()在字符串上使用。

Dim dateOnly As String = yourString.Split(" ")(0);
于 2012-10-04T16:46:39.363 回答
1

在您的 SQL 查询中,您可以将 DateTime 转换为预先格式化的字符串。像这样:

SELECT convert(varchar, getdate(), 101)

有关更多日期格式,请查看MSDN 格式列表

于 2012-10-04T16:50:58.743 回答
1
File.WriteLine(String.Join(strDelimitter, dtRow.ItemArray.Select(Function(Field) DateTime.Parse(Field.ToString).ToShortDateString())))

将该值转换为 DateTime,然后调用其 .ToShortDateString() 方法。这将取决于文化。

于 2012-10-04T17:02:15.497 回答