1

我有一个存储在 SQL Server 数据库中的表。表的字段之一是类型DATETIME。我还有一个 ASP Calendar,其日期与DATETIME数据库的字段进行比较。

问题是我不想比较时间。只需要比较日期。这样做的 SQL 查询是什么。

这是我使用的:

 SqlCommand myCommand = new SqlCommand("
SELECT AUDIT.AUDIT_DETAILS, USERS.USER_NAME, AUDIT.DATE_TIME, IP  
FROM USERS JOIN AUDIT ON (USERS.USER_ID = AUDIT.USER_ID) 
WHERE USERS.USERS_NAME LIKE '%"+TextBox1.Text+"%' AND CONVERT(VARCHAR(10),AUDIT.DATE_TIME,110) like "+Calendar1.SelectedDate.Date+"'%'", conn);

我在 SQL Server 资源管理器中得到正确的输出,但是当通过 asp.net 从浏览器运行时,查询结果为空

4

2 回答 2

3

尝试如下修改您的查询

  SqlCommand myCommand = new SqlCommand("SELECT AUDIT.AUDIT_DETAILS, USERS.USER_NAME, AUDIT.DATE_TIME, IP  
  FROM USERS JOIN AUDIT ON (USERS.USER_ID = AUDIT.USER_ID) 
  WHERE USERS.USERS_NAME LIKE '%"+TextBox1.Text+"%' AND
  CONVERT(VARCHAR(10),AUDIT.DATE_TIME,106) ==    CONVERT(VARCHAR(10),CAST('"+Calendar1.SelectedDate.Date+"' as DATETIME),106)", conn);
于 2012-04-23T09:00:23.930 回答
2

您可以像这样从 SQL 中的 Datetime 获取日期

CONVERT(DATE,GETDATE())

之后,您可以与该值进行比较。

于 2012-04-23T07:01:37.727 回答