仅比较ASP.NET代码中DATETIME字段中的DATE

时间:2012-04-23 06:57:18

标签: c# asp.net sql sql-server-2008 datetime

我有一个存储在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运行时查询结果为空

2 个答案:

答案 0 :(得分:2)

您只能从SQL中的Datetime获取日期

CONVERT(DATE,GETDATE())

之后你可以与那个值进行比较。

答案 1 :(得分:2)

尝试按以下方式修改您的查询

  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);