Re: [問題] WHERE DateTime.now 判斷資料表內的時間

看板C_Sharp (C#)作者 (mize)時間12年前 (2012/11/20 13:28), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《womamayo (womamayo)》之銘言: : 各位前輩好 : 小弟目前正在做專題,是關於揪團訂餐的 : 現在目前遇到一個問題就是,在已經有人開團後 : 我想要在首頁顯示有開團的揪團 : 目前的想法是 透過 WHERE 去判斷,開團的資料表(group_open)內的closetime : 欄位(SmallDatetime) > 現在時間(DateTime.Now) 然後有符合的在抓出來 : 邏輯上感覺是可行的,可是我不知道該如何去判斷,我有直接下DateTime.Now() : 但是畫面顯示是錯誤的,有去Google搜尋相關資料,也搜尋不到... : 想請問前輩們能夠協助小弟解決這個問題嗎? 或是有其他更好的方法嗎? SQL敘述直接下 WHERE (GETDATE() BETWEEN StartDate AND EndDate) GETDATE() = SQL取系統時間 http://0rz.tw/xRrXJ BETWEEN = 取區間 http://0rz.tw/ObfQ8 指令解釋 今天 在 開始時間 到 結束時間 之間 這樣就不用去用DateTime.Now去字串化又要送進去SQL處理 P.s:DateTime.Now.ToString()會取出系統語言格式的時間(包含上下午) SQL內使用的型態DateTime格式是2012-11-21 00:00:00.000,要做處理才可以相容 P.s:另外要注意c#中的DateTime區間是12點~12點的區間(24小時制),有分界點問題   過了12點才算當天(一些時間區間判斷要注意) 範例:11月20號早上8點~11點不屬於11月20號~ 剛剛用目前工作環境測試一下之後 smalldatetime 這型態格式是 "yyyy-MM\-dd HH-mm-ss" 用Where可以直接用字串查詢,允許1分鐘的誤差 範例: 欄位數值 Time = 2012-11-11 12:00:00 WHERE (Time = '2012-11-11 11:59:29') 查不到 WHERE (Time = '2012-11-11 11:59:30') ok WHERE (Time = '2012-11-11 12:00:29') ok WHERE (Time = '2012-11-11 12:00:30') 查不到 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.85.47 ※ 編輯: m339606 來自: 114.33.85.47 (11/20 13:44) ※ 編輯: m339606 來自: 114.33.85.47 (11/20 13:44)

11/20 13:50, , 1F
補上系統環境 ASP.NET 4.0 + VS2010 and MS SQL 2012
11/20 13:50, 1F

11/21 16:58, , 2F
解決了,感謝您的回覆
11/21 16:58, 2F
文章代碼(AID): #1GgnK14H (C_Sharp)
文章代碼(AID): #1GgnK14H (C_Sharp)