如何在使用存储过程从数据库中提取数据时从DateTime中删除时间
本文关键字:提取 数据 DateTime 时间 删除 数据库 存储过程 | 更新日期: 2023-09-27 18:18:21
我在SQL Server上托管了一个数据库表。
问题是一个列,它是'date'类型。当使用我的存储过程从数据库中提取数据时,显示的日期加上时间12:00:00 AM。
例如,日期'30/10/2015'将作为单独的日期存储在数据库中,但是当它被添加到gridview中时,如上所述,时间12:00:00AM被附加到它。我只想在gridview中显示日期,而不是时间。
下面是将数据从数据库绑定到gridview的代码:
private void BindGridEvent()
{
string constr = System.Configuration.ConfigurationManage.ConnectionStrings["conString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("EventInfo_CRUD"))
{
cmd.Parameters.AddWithValue("@Action", "SELECT");
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
GridView2.DataSource = dt;
GridView2.DataBind();
}
}
}
}
}
下面是用于从数据库中提取数据的存储过程:
[dbo].[EventInfo_CRUD]
@Action VARCHAR(10)
,@EventID INT = NULL
,@Location nvarchar(MAX) = NULL
,@EventName nvarchar(MAX) = NULL
,@EventDescription nvarchar(MAX) = NULL
,@EventDate date = NULL
,@EventTime time = NULL
,@ImageUrl nvarchar(MAX) = NULL
AS
BEGIN
SET NOCOUNT ON;
--SELECT
IF @Action = 'SELECT'
BEGIN
SELECT
EventID,Location, EventName, EventDescription,
EventDate, EventTime, ImageUrl
FROM EventInformation
END
帮助将是非常感激的家伙!谢谢!
您需要指示gridview -或者更准确地说:它的BoundField
列类型之一-以特定格式显示此。net DateTime
-仅显示日期部分,不显示时间。
这意味着你需要手动添加列到gridview -你不能在gridview上使用AutoGenerateColumns
。
然后,对于有问题的列,您需要像这样设置DataFormatString
属性:
<asp:GridView ......>
<Columns>
.......
<asp:BoundField DataField="EventDate" DataFormatString="{0:d}" />
.......
</Columns>
</asp:GridView ......>
{0:d}
格式字符串指示。net为这个DateTime
显示"短日期格式",基本上就是年、月、日,无论你的默认日期格式是什么。
查看DataFormatString
上的MSDN文档,了解有关您拥有的所有各种选项的更多详细信息
当我需要在gridview中格式化DateTime列时,下面的工作对我有用
<asp:BoundField DataField="TRANDATE" HeaderText="Document Date" dataformatstring="{0:MM/dd/yyyy}" htmlencode="false" />
为模板字段试试:
<%# Bind("Document Date", "{0:dd/MM/yyyy}") %>
如果您正在使用asp:TemplateField
,请尝试以下
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="EventDate" runat="server" Text='<%# Bind("EventDate ", "{0:d}") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>