鍍金池/ 問答/數(shù)據(jù)庫/ SQL Server 時間的字段怎么判斷?

SQL Server 時間的字段怎么判斷?

公司的一個報餐系統(tǒng),一個用餐信息表。有兩個字段用來標(biāo)識用餐時間,一個開始,一個結(jié)束。比如早餐是"07:00" 到"08:30";而它們的格式是HH:mm,即"07:00" 、"08:30"。
我的存儲過程是這樣寫的

      select  
        meal_name
      from 
        base_meal_info_tab
      where 
        @time > meal_start_use_time 
      and @time < meal_end_use_time

什么都查不到,是該怎么查詢?求大神指點...

between ... and ... 也試過

回答
編輯回答
夏夕

meal_start_use_time ,meal_end_use_time 這兩個字段要先轉(zhuǎn)成日期或者時間格式吧?雖然我只用過 oracle

2017年4月22日 00:20
編輯回答
假灑脫
你要把前臺傳的用餐的開始時間、結(jié)束時間用between存到一個數(shù)組里面并且賦值給這個字段,
譬如說你要查詢用戶用餐開始時間在某個時間段可以這樣子寫:

$where['meal_start_use_time'] = ['between',[$this->data['start_time'],$this->data['end_time']]];
select meal_name from base_meal_info_tab where $meal_start_use_time = $where['meal_start_use_time'] ;

同理用戶用餐結(jié)束時間:
$where['meal_end_use_time'] = ['between',[$this->data['start_time'],$this->data['end_time']]];
select meal_name from base_meal_info_tab where $meal_end_use_time= $where['meal_end_use_time'] ;

其實我感覺用戶用餐的結(jié)束時間沒必要統(tǒng)計,一般開始時間是用戶下單時間,結(jié)束時間怎么統(tǒng)計啊,
如果不特別關(guān)注用戶吃飯速度的快慢沒必要統(tǒng)計的.
直接留一個開始用餐時間,比如create_time,然后我們查詢前臺傳來的某個時間段得出這些用戶

$where['create_time'] = ['between',[$this->data['start_time'],$this->data['end_time']]];
select meal_name from base_meal_info_tab where $create_time = $where['create_time'];
以上僅供參考.
2018年3月13日 17:25