Eval删除SQL DateTime字段的时间段

时间:2009-04-22 04:53:22

标签: sql-server-2008 datetime .net-3.5 eval

打算称之为“Eval不会给我一天的时间”,但认为太可爱了。

我从我为标题看到的建议问题中遇到了相反的问题,所以这里有:

Visual Studio 2008 Pro,SQL Express 2008,Vista。 Web项目,我从一个事件表中打开记录,其中包含来自Facilities表的JOINed信息。

我在SQL文件中有一个完整填写的SQL DateTime字段:例如,4/30/2009 6:30 PM。

我在ListView中的字段是直的<%# Eval("EventDate") %>,而我的跟踪,就我从观察Autos窗口通过SQLDataSource检索而言,能够在下午6:30的时间内完好无损地存活下来。一天。

据我所知,在填充DataSource之后,唯一的指令就是Eval本身。

然而,在渲染时,该日期时间在页面上显示为4/30/2009 12:00:00 AM

因此,我坚信,我需要额外的fu来解析我的Eval语句,以便在我进入该领域的同时。我还不熟悉这一点,所以欢迎提出建议。提前谢谢。

编辑:为Jose提供代码。

的DataSource:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MeetingsConnectionString %>" onselecting="SqlDataSource1_Selecting" SelectCommand="SELECT Events.ID, Events.FacilityID, Events.Room, Events.EventDate, Events.Speaker, Events.Topic, Facilities.ID AS Expr1, Facilities.FacilityName, Facilities.FacilityAddress, Facilities.FacilityCity, Facilities.FacilityState, Facilities.FacilityZip, Facilities.FacilityLat, Facilities.FacilityLong FROM Events INNER JOIN Facilities ON Events.FacilityID = Facilities.ID WHERE (Events.EventDate BETWEEN @EventDate AND @EventDate2) ORDER BY Events.EventDate" ProviderName="System.Data.SqlClient"> <SelectParameters> <asp:Parameter Name="EventDate" /> <asp:Parameter Name="EventDate2" /> </SelectParameters> </asp:SqlDataSource>

的ListView:

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="ID,Expr1"> <AlternatingItemTemplate> When:<asp:Label ID="EventDateLabel" runat="server" Text='<%# Eval("EventDate") %>' />

... <ItemTemplate> When: <asp:Label ID="EventDateLabel" runat="server" Text='<%# Eval("EventDate") %>' /><br />

编辑2:我通过将EventDate分为EventDate(日期)和EventTime(时间)来解决问题。我现在得到了正确的值,并继续使用CONVERT或CAST在SQL查询中将时间值从军事时间转换为民用时间(即下午6:30)。感谢您的所有回复。

1 个答案:

答案 0 :(得分:1)

Sql server得到了一个新的类型,日期,如果你将日期时间转换为datelike,它会这样做: select convert(datetime,convert(date,'4/30/2009 6:30 PM'))

Maby你在某处指定了错误的类型?