我在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日”。
如何做到这一点?
答案 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");
看看这些