youngfan007 发表于 2015-7-1 14:37:42

MS SQL SERVER中的BETWEEN AND的使用

sql的between與查詢日期範圍

2008-04-16 14:37




  資料 Customer



Id
Name
RegisterDate


1
澎澎
2007/1/5 00:00:00


2
丁丁
2007/1/6 00:00:00


3
亞亞
2007/1/7 00:00:00

  aspx頁面查詢條件:
  最小日期:       最大日期:
  使用的 sql:
  SELECT ID, Name, RegisterDate
FROM Customer
WHERE (RegisterDate BETWEEN '2007-01-06' AND '2007-01-06')
  結果是傳回1筆:丁丁, 符合我的預期
  但是 如果丁丁的RegisterDate 的時間 不是00:00:00呢?
  如果資料是這樣
  


Id
Name
RegisterDate


1
澎澎
2007/1/5 00:00:00


2
丁丁
2007/1/6 04:37:00


3
亞亞
2007/1/7 00:00:00



  一樣的sql
  SELECT ID, Name, RegisterDate
FROM Customer
WHERE (RegisterDate BETWEEN '2007-01-06' AND '2007-01-06')
  傳回來的是0筆
  
  嗯,因為我沒有給予正確的時間範圍嘛,我的查詢條件應該是2007/1/6 號整天時間範圍。
  所以我通常程式在查詢前,都會先幫日期加1天
  RegisterMaxDate = RegisterMaxDate.AddDays(1);
  但是,這樣就對了嗎??
  這樣的程式產生的sql是
  SELECT ID, Name, RegisterDate
FROM Customer
WHERE (RegisterDate BETWEEN '2007-01-06' AND '2007-01-07')
  反而傳回2筆,把亞亞也傳回來了
  因為 Sql 的 between min And max 是 value >=min && value =”和“”和“=”和“=35

AND price
页: [1]
查看完整版本: MS SQL SERVER中的BETWEEN AND的使用