c#
  • asp.net
  • sql
  • 2012-03-07 42 views 0 likes 
    0

    我喜歡這count job_id我如何根據一天計算數據?

    • js_id int
    • job_id int
    • apply_date smalldatetime

    代碼:

    string cmdstr3 = "SELECT COUNT(job_id) FROM applied_jobs 
            WHERE js_id='" + jsId + "' AND apply_date='" + DateTime.Now.Date + "'";` 
    
    string cmdstr4 = "SELECT COUNT(job_id) FROM applied_jobs 
            WHERE js_id='" + jsId + "' AND (apply_date >='" + start_date.Date + "' AND apply_date <'" + end_date.Date+ "')"; 
    

    但它算作0

    我有這樣

    3/6/2012 12:00:00 AM 
    3/6/2012 12:00:00 AM 
    3/5/2012 12:00:00 AM 
    
    +0

    有什麼計數,當你刪除where子句。 – 2012-03-07 07:18:30

    +0

    你確定你有提供'jsId' ??/ – 2012-03-07 07:34:39

    +0

    @ Conrad Frix的數據:那麼它意味着我的要求 – jinaljagani 2012-03-08 04:38:37

    回答

    1

    數據看來你想要得到的條目計數的某js_id當前日期。下面是你應該做的只是:

    var cmd = new SqlCommand("SELECT COUNT([job_id]) FROM [applied_jobs] WHERE [js_id] = @jsid AND datediff(day,[apply_date], @applydate) = 0",cn); 
    cmd.Parameters.Add("@jsid", SqlDbType.Int).Value = jsId; 
    cmd.Parameters.Add("@applydate", SqlDbType.SmallDateTime).Value = DateTime.Now.Date; 
    
    +2

    +1在查詢中使用**參數**以避免SQL注入! – 2012-03-07 08:14:27

    +0

    我已經應用了Shekhar_Pro給出的代碼,但它沒有工作,它顯示了'COUNT of job_id = 0'。在數據庫中我有類似這樣的入口'3/5/2012 12:00:00 AM'。我認爲它有時間所以它不能像我想要的那樣正確比較。 – jinaljagani 2012-03-08 04:28:31

    +0

    @jinaljagani因爲你可以通過使用TSQl datediff函數簡單地忽略時間部分,並僅將它與日期進行比較...希望它有助於這個時間:) – 2012-03-10 10:57:41

    相關問題