Re: [問題] WHERE DateTime.now 判斷資料表內的時間
※ 引述《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
11/20 13:50, 1F
推
11/21 16:58, , 2F
11/21 16:58, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章