當前位置:首頁 » 編程語言 » sql區間查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql區間查詢

發布時間: 2022-01-12 22:23:36

㈠ 如何在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中的日期有一點不一樣。

(1)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裡面,也可以在應用程序裡面。
沒特殊要求的話建議採用後者,直接在程序裡面寫一個循環即可。
如果是要用SQL的話,可以用一個臨時表把需要的先放裡面再取出即可.

資料庫的日期區間查詢方法。

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')。

(4)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 如何查詢日期在一定范圍內的數據

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)

(5)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 查詢范圍內的數據

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"

㈧ 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如何實現按數據范圍查詢

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')
有幾個范圍加幾個范圍

㈩ sql查詢價格區間

1、單行子查詢出現在WHERE子句中,如下所示。

5、ANY操作符不能單獨使用,必須和>、<等比較操作符一起使用。>ANY表示大於列表中任何一個數據即為TRUE;<ANY表示小於列表中的任何數據即為TRUE。具體實現如下圖。