【问题标题】:SQL Server returns Date and Time instead of just Date. ASP.net WebpagesSQL Server 返回日期和时间,而不仅仅是日期。 ASP.net 网页
【发布时间】:2014-04-17 07:39:07
【问题描述】:

我正在使用 WebMatrix 3 中的 ASP.net 网页制作网站。 我有一个包含事件记录的表的数据库(SQL Server)。 InDate 列,类型为Date,是主键。但是,输入的数据会呈现为“4/5/2014 12:00:00 AM”。

这正常吗?如果是,您如何从日期中删除时间? 我试过查找很多不同的资源。但没有发现任何对我的情况有帮助的东西。

如果有任何指示、提示、建议或您需要更多信息。请告诉我。

谢谢'

更新 这是请求的cshtml文件。

@{
   Layout = "~/Layouts/_Site.cshtml";
   PageData.Add("Title","Overview");
   var talkDB = Database.Open("Events");
   string incomingQuery = string.Format("SELECT InDate,Event FROM IncomingEvents WHERE InDate >= GETDATE() AND InDate <= DATEADD(week, 5, GETDATE())");

}


<div id="upcomingEvents" class="alertBox">
    <div id="IncomingEvents">
        <h3>Incoming Events</h3>
        <table class="alertBox">
            @foreach(var row in talkDB.Query(incomingQuery))
            {
                <tr>
                    <td>
                        @row.InDate
                    </td>
                    <td>@row.Event</td>
                    <td>edit</td>
                </tr>
            }
        </table>
    </div>
</div>

【问题讨论】:

  • 请提供您用于显示日期值的 cshtml 示例。
  • .net 日期始终包含时间组件。 Date.ToString 将始终显示此时间组件。您需要格式化日期以删除时间,例如:Date.ToShortDateString

标签: c# asp.net sql-server asp.net-webpages


【解决方案1】:

它在您的网页中显示为时间的原因是因为 .NET 中没有 Date 类型 - 只有 DateTime 和其他类似类型。当您从 SQL Server 获取 Date 类型时,.NET 将其隐式转换为 DateTime。由于来自 SQL Server 的 Date 中没有指定时间,因此使用 0 值,即 12:00:00AM。

为了在您的网页上仅显示日期,您需要编写前端代码来执行此操作。

这可以通过在数据模型对象的日期属性上调用 .ToString() 来完成,并传入适当的格式字符串。

有关 DateTime.ToString() 的所有参数及其作用,请参见此链接: http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx

你很可能想要这样的东西:

@row.InDate.ToString("M/d/yyyy");

具有速记功能:

@row.InDate.ToShortDateString();

【讨论】:

  • 没问题。我强烈建议将我提供的页面添加为书签,因为您将来会再次需要它,保证。当我需要以不同的方式显示日期/时间时,我发现自己不时引用它。
  • 感谢您的提示。我有一种感觉,我很快就会再次需要它。
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 2011-04-10
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多