【发布时间】:2013-09-13 13:35:23
【问题描述】:
谁能告诉我如何在 sql 存储过程的 where 子句中进行日期比较。
我向用户提供了一个文本框过滤器,用户可以在其中输入任何格式的日期(例如 13/09/2013、13092013、13-Sep-2013、130913)。数据库表有日期时间类型列,我想在其上应用此过滤器。
这里我有 3 个问题
- 我是否必须先将其转换为某些特定日期,仅在我的 c# 代码中键入。如果是,那么日期格式是否重要?
- 如何检查日期类型参数是否为空或为空?
- 如何将上述仅日期类型(来自 c# 代码)与我的数据库表的 datetime 列进行比较?
一个代码示例将不胜感激。
亲切的问候
【问题讨论】:
-
我已经放置了一个 IF 条件如下 IF(NULLIF(@CompanyName, '') IS NULL AND NULLIF(@DateOfEnquiry, '') IS NULL) 现在我必须在其中应用日期比较条款。在这里我不确定我的 IF 语句是否也正确,如何仅从 @DateOfEnquiry 和我的 table.DateOfEnquiry 获取日期部分并对其进行比较
-
IF 条件看起来很奇怪:@CompanyName 上的 NULLIF 检查将该变量中的任何 NULL 替换为 '',因此它永远不会是 NULL。之后是“IS NULL”。因此,您检查是否存在永远不会为 NULL 的 IS NULL。 DateOfEnquiry 也有同样的问题。我认为这对任何要求都没有帮助......
标签: c# tsql stored-procedures