【问题标题】:How to display records based on date = tomorrow?如何根据日期=明天显示记录?
【发布时间】:2013-04-23 09:10:51
【问题描述】:

我必须根据条件在 gridview 中显示记录 - Appointment date = tomorrow date

我尝试了很多选择,但没有得到确切的方法。我正在使用 datetime 进行约会,它也有时间。所以我不能单独删除时间和比较日期。

现在在 sqldatasource 中使用这个查询:

SELECT * FROM [Patient_Appointment_Detail] WHERE ([AptTime] = @AptTime)

并在控制参数中使用:

<asp:ControlParameter ControlID="lblgetdate" DefaultValue="NULL" Name="AptTime" 
                PropertyName="Text" Type="DateTime" />

我在加载页面时将明天的日期标记为标签。但无法删除 AptTime 中的时间并仅比较日期。

lblgetdate.Text = DateTime.Now.AddDays(1).ToString("dd/mm/yyyy");

我也收到此错误:

字符串未被识别为有效的日期时间。说明:一个 当前 web 执行过程中发生未处理的异常 要求。请查看堆栈跟踪以获取有关 错误以及它起源于代码的位置。异常详情: System.FormatException:字符串未被识别为有效的 DateTime。 源错误:在执行过程中产生了未处理的异常 当前网络请求的执行

【问题讨论】:

  • 你能贴出你试过的代码吗?
  • DateTime 有一个 Date 属性是你要找的吗?
  • 已发布。我只需要查询我只能从 AptTime 获取日期。
  • 在数据库 AptTime 中存储为 DateTime。但在查询中我只想要日期。

标签: c# asp.net sql-server


【解决方案1】:

在 SQL Server 中,您可以将 DateTime 转换为 Date

SELECT * 
FROM [Patient_Appointment_Detail] 
WHERE CAST([AptTime] AS DATE) = CAST(@AptTime AS DATE)

参考:MS SQL compare dates?

您还有另一个问题,您在参数中传递了一个字符串作为日期时间。这是非法的,你有一个例外。

创建一个控件来保存您的日期,例如 Calendar

<asp:ControlParameter ControlID="myCalendar" DefaultValue="NULL" Name="AptTime" 
            PropertyName="SelectedDate" Type="DateTime" />

myCalendar.SelectedDate = DateTime.Now.AddDays(1);

【讨论】:

  • 但我想查询.. 在查询中我怎样才能只从 AptTime 获取日期?
  • 已尝试但收到此错误:字符串未被识别为有效的日期时间。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.FormatException:字符串未被识别为有效的 DateTime。源错误:在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
  • 我的标签有问题吗??标签仅显示明天的日期。
【解决方案2】:

这会做你想做的事:

SELECT * FROM [Patient_Appointment_Detail] WHERE ([AptTime] = DATEADD(day, 1, CONVERT(DATETIME, @AptTime)))

如果您将日期作为今天的日期传递。

要与明天的日期进行日期比较,请使用:

SELECT * FROM [Patient_Appointment_Detail] WHERE CAST([AptTime] AS DATE) = CAST(CONVERT(DATETIME, @AptTime) AS DATE))

【讨论】:

  • 得到同样的错误:字符串未被识别为有效的日期时间。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.FormatException:字符串未被识别为有效的 DateTime。源错误:在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
  • 不。我想通过明天的日期。所以我要贴标签并存储明天的日期。但无法将标签作为参数传递..给出错误。
  • 是的..我明白了..感谢您的帮助:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 2020-06-07
  • 1970-01-01
  • 2021-12-17
相关资源
最近更新 更多