1

我正在处理一个 SQL Server 2008 r2 数据库,其中创建日期和时间位于不同的字段中,并且每个都是 nvarchar 数据类型。我知道这很可怕,但我现在被这个结构困住了,无法更改数据库。我将此创建日期从数据库(使用存储过程)返回到前端,这是一个 asp.net 网络表单页面。此数据被绑定到 GridView。

进入此网格视图后,用户希望能够单击此日期并按日期对行进行排序。显然这目前不起作用,因为日期是 varchar 格式。所以我试图将存储过程中的这个日期转换为一些有效的日期格式,如日期时间,并将其作为有效的日期格式返回到前端。这样我就可以按日期正确排序。

好消息是我已经能够做到这一点,但坏消息是,当我将 nvarchar 日期转换为 datetime 对象时,我不断得到类似 00:00:0 的时间。我对此进行了研究,无论我做什么,我都无法摆脱这个时间。我需要的只是有效日期格式的日期。我不需要时间。有人可以告诉我如何在没有时间的情况下将其转换为日期吗?

4

2 回答 2

0

您可以对日期使用字符串格式,如下所示...

//For .cs code
lblDate.Text = yourDateField.ToString("MM/dd/yyyy");

<%-- For .aspx markup --%>
<asp:label ID="lblDate" runat="server" Text='<%# Convert.ToDateTime(Eval("yourDateField")).ToString("MM/dd/yyyy") %>' />

并使用您的存储过程缩短日期。

编辑

当然,您可以将DataSet绑定到 a 的任何字段格式化GridViewDataSource.

将以下标记放在您GridView.aspx页面中...

<%# Convert.ToDateTime(Eval("yourDateField")).ToString("MM/dd/yyyy") %>
于 2013-09-12T06:20:12.650 回答
0

在 grdivew 中应用文本格式的最简单方法是使用 gridview boundfield 的 DataFormatString 属性。如下图

<asp:GridView ID="GridView1" runat="server" 
            AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="Date" 
                    HeaderText="Date" 
                    DataFormatString="MM/dd/yyyy" />
           </Columns>
  </asp:GridView>
于 2013-09-12T06:49:23.453 回答