从数据库中的日期字段更改日期格式

时间:2009-12-14 08:12:25

标签: c# asp.net sql vb.net

我在SQL Server 2005中使用ASP.NET。

我的日期保存在数据库中,数据类型=“smalldatetime”。

我将日期值显示在一个名为txtDate的文本框中,带有一个Reader ......

    Dim conn As Data.SqlClient.SqlConnection
    Dim Comm As Data.SqlClient.SqlCommand
    Dim reader As Data.SqlClient.SqlDataReader

    conn = New Data.SqlClient.SqlConnection(..............)

    Comm = New Data.SqlClient.SqlCommand( _
    ("SELECT * FROM Table1 WHERE Age = 88"), conn)

    conn.Open()

    reader = Comm.ExecuteReader()

    If reader.Read() Then

        txtDate.Text = reader.Item("theDate").ToString

    End If

    reader.Close()
    conn.Close()

但目前我的日期显示为“2008/06/30 12:00:00 AM”,我想将其显示为“2008年6月30日”。

如何做到这一点?

3 个答案:

答案 0 :(得分:2)

ToString替换为ToString("dd MMMM yyyy")。您可能希望在MSDN中查找DateTime.ToString的重载以及日期时格式化字符串。

您的代码的其他要点 - 如果您确实从单行中选择单个值,则限制您的选择列表(即不要使用SELECT *)并考虑使用ExecuteScalar而不是ExecuteReader ... < / p>

答案 1 :(得分:1)

数据如何存储在数据库中无关紧要 - 您将在客户端代码中获得DateTime。然后你只需要格式化你想要的格式。

尝试这样的事情:

If reader.Read() Then
    Dim date as DateTime = CType(reader.Item("theDate"), DateTime)
    txtDate.Text = date.ToString("dd MMMM yyyy")
End If

这里“dd”表示“日期”,“MMMM”表示“全年的月份”,“yyyy”表示“4位数年份”。

有关详细信息,请参阅MSDN on custom date and time format strings。或者,您可以使用standard date and time format string来考虑您当前的文化。 (自定义的字符将考虑每个字段的字段,因此月份名称将适合文化,但要格式化的字段的顺序和样式由格式字符串确定。)

答案 2 :(得分:0)

您应该使用数据格式字符串。

将您的值 reader.Item(“theDate”)转换为DateTime对象,并使用ToString方法。

yourDateTime.ToString("dd MMMM yyyy");

看看这些