sql日期查詢
⑴ 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個欄位 日期 ,時間,並用整形表示
⑵ 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)
(3)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 如何查詢日期在一定范圍內的數據
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)
(4)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查詢時間段
select * from 表 where 日期欄位>='開始日期' and 日期欄位<='截止日期'
and convert(char(8),日期欄位,108)>='開始時間' and convert(char(8),日期欄位,108)<='截止時間'
例如:
select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='22:30:00' and convert(char(8),dDate,108)<='23:00:00'
⑹ SQL 日期型查詢
CaseSql="where month(開始日期)="&month(Request("開始日期"))&" and day(開始日期)>=1 and day(開始日期)<="&day(Request("開始日期"))
或者如果不用日期的,只用月份的
「where month(開始日期)=」&month(Request("開始日期"))
⑺ SQL語句查詢特定時間段的數據怎麼寫
SQL伺服器:
Select*fromtablewhere'2008-7-1'和'2008-12-31'
訪問:
從表中選擇發生日期>#2008-7-1#和發生日期<#2008-12-31#
就是這樣:注意,SQLserver中的日期和訪問有一點不同。
(7)sql日期查詢擴展閱讀:
SQL查詢日期語句
Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查詢第一年的日期
Select*fromShopOrder,其中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*
FROMj_GradeShop
其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))
並轉換(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)
由GAddTime指定的訂單
⑻ SQL中查詢日期語句
SQL SERVER:
用函數datepart處理就可以了,示例:
select datepart(weekday,getdate()) as 周內的第幾日
select datepart(week,getdate()) as 年內的第幾周
select datepart(quarter,getdate()) as 年內的第幾季
周內的第幾日
-----------
5
(所影響的行數為 1 行)
年內的第幾周
-----------
34
(所影響的行數為 1 行)
年內的第幾季
-----------
3
(所影響的行數為 1 行)