首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否更改DataColumn DateTime格式?

是否更改DataColumn DateTime格式?
EN

Stack Overflow用户
提问于 2013-07-02 04:19:33
回答 2查看 11.1K关注 0票数 0

我想遍历一个数据集,并将所有DateTime列的格式从SQL Server mm/dd/yyyy hh:mm:ss tt返回的默认格式(例如1/1/2011 3:56:50 PM)更改为dd-Mon-yyyy (例如2011年1月1日)。这个是可能的吗?

我可以通过以下代码块访问dataset中每个表的数据表:

代码语言:javascript
复制
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")

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-02 04:30:51

DateTime没有隐式格式,它只是一个DateTime值。您可以将其格式化为string,但是它是一个不同的类型。

例如:

代码语言:javascript
复制
SELECT REPLACE(convert(varchar, YourDateColumn, 106), ' ', '-')

How to format datetime & date

根据你对你的问题的评论:

我正在使用DataTable通过EPPlus打印出一个

工作簿。我想做的就是在写出工作簿之前更改DateTime列中单元格的格式。到目前为止,我只是执行一些错误检查,然后使用EPPlus的LoadFromDataTable方法将表写入工作簿。我不能只是遍历表格并更改每个DateTime列中单元格的字符串格式吗?

可以,您可以使用EPPlus设置通过LoaFromDataTable创建的工作表中的列的格式,并使用相应的range.Style.Numberformat.Format

代码语言:javascript
复制
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

但是,我更喜欢使用数据库,因为它更高效。

票数 2
EN

Stack Overflow用户

发布于 2013-07-02 04:36:03

您提到了为列指定一种格式-如果您使用DataGridView来可视化数据,请参见How to format DateTime columns in DataGridView?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17412947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档