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