sql區間查詢
Ⅰ sql查詢價格區間
1、單行子查詢出現在WHERE子句中,如下所示。
5、ANY操作符不能單獨使用,必須和>、<等比較操作符一起使用。>ANY表示大於列表中任何一個數據即為TRUE;<ANY表示小於列表中的任何數據即為TRUE。具體實現如下圖。
Ⅱ SQL 如何查詢一個區間段的所有值
建議先根據查詢條件查出對應的區間,然後對這個區間做處理。
處理可以在SQL裡面,也可以在應用程序裡面。
沒特殊要求的話建議採用後者,直接在程序裡面寫一個循環即可。
如果是要用SQL的話,可以用一個臨時表把需要的先放裡面再取出即可.
Ⅲ 如何在SQL中按時間段查詢數據
sql server:
select * from 表 where 發生日期>'2008-7-1' and 發生日期<'2008-12-31'
access:
select * from 表 where 發生日期>#2008-7-1# and 發生日期<#2008-12-31#
這樣就可以了,注意sql server與access中的日期有一點不一樣。
(3)sql區間查詢擴展閱讀:
sql查詢日期語句
select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查詢當天日期在一周年的數據
select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查詢當天的所有數據
SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天
SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上一月
查詢當天記錄另類的方法:
SELECT *
FROM j_GradeShop
WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')
AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)
ORDER BY GAddTime DESC
Ⅳ SQL日期區間查詢
--你想要的是不是這樣?
--適用於SQL Server
declare @date1 datetime, @date2 datetime
set @date1 = '20140101'
set @date2 = '20140131'
select @date1 date1, @date2 date2,
sum(case when 預付日期 >=@date1 and 預付日期<=@date2 then 預付金額 else 0 end) 預付金額,
sum(case when 實付日期 >=@date1 and 實付日期<=@date2 then 實付金額 else 0 end) 實付金額,
sum(case when 入庫日期 >=@date1 and 入庫日期<=@date2 then 入庫數量 else 0 end) 入庫數量,
sum(case when 發票日期 >=@date1 and 發票日期<=@date2 then 發票金額 else 0 end) 發票金額
from table1
Ⅳ SQL語句怎樣查詢一個范圍
SQL方法完成數值區間查詢
要求:根據獎金等級表的數值區間,返回獎金對應的等級。
1、鏈接外部數據:數據--現有鏈接--瀏覽更多,在路徑中選擇數據Excel文件和目標工作表,建立數據鏈接。
詳細步驟參考前面所發的SQL相關文章。
2、編寫sql語句。
2.1、使用switch函數,SQL語句為:
select 姓名,獎金,switch(獎金<200,"D級",獎金<300,"C級",獎金<500,"B級",獎金>=500,"A級") as 獎金等級 from [獎金$a1:b11]
switch函數直接判斷數值,若數值小於200,返回D級;數值小於300返回C級;數值小於500,返回B級;餘下的數值條件要變化為>=500返回A級而不是<=700。
2.2、使用iif函數,SQL語句為:
select 姓名,獎金,iif(獎金<200,"D級",iif(獎金<300,"C級",iif(獎金<500,"B級","A級"))) as 獎金等級 from [獎金$a1:b11]
其基本思路和switch函數相同,類似工作表函數if的嵌套。
2.3、使用betweent...and,SQ語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 between b.最小值 and b.最大值
以戴蘇明同學為例子,在SQL代碼運行的時候,將戴蘇明同學的獎金一一和獎金等級表中的數值進行對比,符合區間的就返回區間等級。其他同學亦然。
但是,當獎金超出最大值700的時候就會取不到該條數據。
如劉平的獎金701並不在betweent...and的區間內,返回的結果中沒有劉平的數據。
2.4、使用Where比較大小,sql語句為:
select a.姓名,a.獎金,b.等級 from [獎金$a1:b11] a,[獎金等級$] b where a.獎金 >=b.最小值 and a.獎金<=b.最大值
此方法原理和betweent...and一樣,當獎金超過最大值700時,數據將有遺漏(劉平)。
當獎金的最大值為700的時候,以上四種方法都得出同樣的結果。
當獎金最大值超過700的時候,3、4兩個方法將遺漏獎金大於700的數據。
因此,可在設計獎金等級表的時候,可以將最大值700改為一個比較大的數值,使獎金再高也不會超過,則四種方位皆可。
如更改獎金等級表的最大值700為70000,這么大的一個范圍,則四種方法都適用。
Ⅵ SQL 如何查詢日期在一定范圍內的數據
select * from 表 where 日期欄位>='開始日期' and 日期欄位<='截止日期' and convert(char(8),日期欄位,108)>='開始時間' and convert(char(8),日期欄位,108)<='截止時間'。
SELECT * FROM 表明 WHERE 日期欄位名 BETWEEN '20130101' AND '20130130'。
例如:
select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.
select * from table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)
(6)sql區間查詢擴展閱讀:
SQL查詢日期:
今天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=0
昨天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=1
7天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=7
30天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=30
本月的所有數據:select * from 表名 where DateDiff(mm,datetime類型欄位,getdate())=0
本年的所有數據:select * from 表名 where DateDiff(yy,datetime類型欄位,getdate())=0
參考資料:SQL_網路
Ⅶ SQL如何實現按數據范圍查詢
SQL裡面 像這種字元串存儲的數字 可以直接比較大小
select * from table where CPLSH>='000100' and CPLSH<='000300'
多個范圍的話就用or,比如
select * from table where (CPLSH>='000100' and CPLSH<='000300') or (CPLSH>='000305' and CPLSH<='000400')
有幾個范圍加幾個范圍
Ⅷ 資料庫的日期區間查詢方法。
access中有個mid函數,可以用來截取字元串或者日期。
select * from 表名 where mid([TestTime],5,10) ='04/19/2013'其中,5代表截取的開始位置,從左數,10代表截取的長度。
資料庫的日期區間查詢有兩種情況:
1:查詢給定時間在開始時間列與結束時間列范圍中數據;
2:查詢日期列在開始時間列與結束時間列范圍中數據。
第一種:<,>, <= , >=
select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')
and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
第二種 between and
select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd
hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
(8)sql區間查詢擴展閱讀:
SQL資料庫語句:
創建資料庫:
CREATE DATABASE database-name。
刪除資料庫:
drop database dbname。
創建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)。
刪除新表:
drop table tabname。
增加一個列:
Alter table tabname add column col type。
添加主鍵:
Alter table tabname add primary key(col)。
刪除主鍵:
Alter table tabname drop primary key(col)。
創建索引:
create [unique] index idxname on tabname(col….)。
刪除索引:
drop index idxname。
創建視圖:
create view viewname as select statement。
刪除視圖:
drop view viewname。
參考資料來源:網路-sql語句大全
Ⅸ sql 查詢范圍內的數據
oracle10g以上與sqlserver2005以上通用
selectt.*from
(select表名.*,row_number()over(orderby某欄位)rnfrom表名)t
wherernbetween200and300
Ⅹ SQL中查詢日期區間內的數據
select * from 借閱信息表 where 編號 between #2006-6-9# and #2008-9-9#
或者
select * from 借閱信息表 where 編號 between "2006-6-9" and "2008-9-9"