我想遍历一个数据集,并将所有DateTime列的格式从SQL Server mm/dd/yyyy hh:mm:ss tt返回的默认格式(例如1/1/2011 3:56:50 PM)更改为dd-Mon-yyyy (例如2011年1月1日)。这个是可能的吗?
我可以通过以下代码块访问dataset中每个表的数据表:
Using ds As DataSet = _bo.getHistoryDataSet(projectId)
For Each dt As DataTable In ds.Tables
For Each col As DataColumn In dt.Columns
If col.DataType Is GetType(DateTime) Then
//Format column here?
End If
Next
Next
End Using但我似乎无法为该列指定格式。有没有一种方法可以给列分配一个通用的格式,或者我是否必须遍历这个循环中的每一行并分配row(column) = row(column).ToString("Format Here")
谢谢!
发布于 2013-07-02 04:30:51
DateTime没有隐式格式,它只是一个DateTime值。您可以将其格式化为string,但是它是一个不同的类型。
例如:
SELECT REPLACE(convert(varchar, YourDateColumn, 106), ' ', '-')How to format datetime & date
根据你对你的问题的评论:
我正在使用DataTable通过EPPlus打印出一个
工作簿。我想做的就是在写出工作簿之前更改DateTime列中单元格的格式。到目前为止,我只是执行一些错误检查,然后使用EPPlus的LoadFromDataTable方法将表写入工作簿。我不能只是遍历表格并更改每个DateTime列中单元格的字符串格式吗?
可以,您可以使用EPPlus设置通过LoaFromDataTable创建的工作表中的列的格式,并使用相应的range.Style.Numberformat.Format
For Each col As DataColumn In tblExcel.Columns
If col.DataType = GetType(Date) Then
Dim colNumber = col.Ordinal + 1
Dim range = workSheet.Column(colNumber)
range.Style.Numberformat.Format = "dd-Mon-yyyy"
End If
Next但是,我更喜欢使用数据库,因为它更高效。
发布于 2013-07-02 04:36:03
您提到了为列指定一种格式-如果您使用DataGridView来可视化数据,请参见How to format DateTime columns in DataGridView?
https://stackoverflow.com/questions/17412947
复制相似问题