『壹』 如何用sql查詢一個時間段內的特定時間數據
datetime型的精度是微秒級的,樓上兩位只寫到秒,還是有出錯的可能
將一個datetime取整(取到00:00)有3種方法:
convert(smalldatetime,convert(varchar,日期,112),112)
cast(cast(日期 as int) as smalldatetime)
dateadd(dd,datediff(dd,'2010-1-1',日期),'2010-1-1')
根據你的需求,用方法1,條件寫成
where tm>='2010-3-1' and tm<'2010-4-1'
and tm=dateadd(hh,12,convert(smalldatetime,convert(varchar,tm,112),112))
『貳』 SQL如何按時間段查詢
時間函數各個資料庫不完全相同,但思路是一樣的,不要糾結時間段。
其實你上面的需求就是:
YEAR(RECORD)=2010
DAYOFWEEK BETWEEN 1 AND 5
這個樣子,就是時間型欄位拆分判斷,根據不同資料庫使用時間函數就可以了。
『叄』 sql 根據日期查詢
不知道你什麼資料庫
sqlserver的
只做參考,因為沒有處理各個月的天數,只是默認每一個月都是30天
如果你要精確的,只能自己建立基礎維護表來關聯了
selectnumberasid,t2.cont
frommaster..spt_valuest1leftjoin(selecttime,sum(price)cont
fromtest
groupbytime)t2ont1.number=day(t2.time)
wheret1.type='P'
ANDt1.numberbetween1and30
『肆』 sql server 日期范圍查詢
SELECT * FROM 表明 WHERE 日期欄位名 BETWEEN '20130101' AND '20130130'
或者:
SELECT * FROM 表明 WHERE 日期欄位名 BETWEEN CONVERT(datetime,'2013-01-01',120) AND CONVERT(datetime,'2013-01-30',120)
(4)sql按某日期段查詢擴展閱讀:
注意事項
在寫按時間段查詢的sql語句的時候 一般我們會這么寫查詢條件:
where date>='2010-01-01' and date<='2010-10-1'。
但是在實執行Sql時些語句會轉換成這樣:
where date>='2010-01-01 0:00:00' and date<='2010-10-1:0:00:00',再看這個條件的話,就會有些明白,那就是'2010-10-1 0:00:00' 之後的數據例如('2010-10-1:08:25:00')查不到,也就是說2010-10-1的數據查不到。
修改查詢條件為:
where date>='2010-01-01' and date<='2010-10-1 23:59:59' 或 where date>='2010-01-01' and date<='2010-10-2'。
某個表某個欄位是Datetime型 以"YYYY-MM-DD 00:00:00" 存放
『伍』 如何在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中的日期有一點不一樣。
(5)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 如何查詢日期在一定范圍內的數據
查詢方法:
select * from 表 where 日期>='20130101' and 日期<='20130130'。
(6)sql按某日期段查詢擴展閱讀:
SQL是一種查詢功能很強的語言,只要是資料庫存在的數據,總能通過適當的方法將它從資料庫中查找出來。
SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。
完整的語法如下:
SELECT 目標表的列名或列表達式集合
FROM 基本表或(和)視圖集合
〔WHERE條件表達式〕
〔GROUP BY列名集合〔HAVING組條件表達式〕〕
〔ORDER BY列名〔集合〕?〕
簡單查詢,使用TOP子句。
查詢結果排序order by。
帶條件的查詢where,使用算術表達式,使用邏輯表達式,使用between關鍵字,使用in關鍵字,
模糊查詢like。
網路—SQL資料庫
『柒』 SQL中按日期進行查詢,如何截取日期進行查詢
那你就直接寫 time>date'2012-01-01' and time<date'2013-01-01'
當然,如何把'2012-01-01'轉換為資料庫的時間類型,各種資料庫是不一樣的,oracle中是to_date('2012-01-01','yyyy-MM-dd')
『捌』 sql語句按日期指定查詢
這樣就可以了啊:
1.select *
from table_name where 發生日期 between '2008-07-01'and '2008-12-31'
2.和上面同理哈
祝你好運!
『玖』 sql如何按時間段來查詢
select * from ms_cf01 a where a.kfrq between to_date('20100101 180000','yyyymmdd hh24miss')
and to_date('20101231 180000','yyyymmdd hh24miss')
and to_char(a.kfrq,'hh24miss') between '180000' and '240000'
主要用到 to_char,to_date對時間欄位的轉換方法,具體使用方法可
如果這么查詢,主要是第2個條件無法用上索引,所以最好的方式是在涉及表的時候將該欄位拆成2個欄位 日期 ,時間,並用整形表示