2012-04-23 36 views
1

我有一個存儲在SQL Server數據庫中的表。該表的其中一個字段爲DATETIME。我也有一個ASP Calendar其日期與數據庫提交的DATETIME比較。僅比較ASP.NET代碼中的DATETIME字段中的DATE

問題是我不想比較時間。只有日期需要比較。什麼是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

能否請你展示以哪種方式,你在SQL Server Explorer和以哪種方式是你Calendar1.SelectedDate.Date測試?也許問題是日期格式。 – 2012-04-23 07:20:18

+0

我也這麼認爲。我其實沒有指定任何格式。我如何讓它們以相同的格式。 – 2012-04-23 07:22:35

+0

您可以將Calendar1.SelectedDate.Date以SQL需要的格式放入Calendar1.SelectedDate.Date.ToString(「format」),而不必格式化您必須編寫的格式,例如dd/MM/yyyy或yyyy/MM/dd – 2012-04-23 07:29:05

回答

2

你可以只從SQL日期時間這樣的SQL這樣的

CONVERT(DATE,GETDATE()) 

然後你可以比較這個值。

+1

問題編輯 – 2012-04-23 07:15:58

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