怎么使用sql語句查詢日期所在周的一周各天
檢索日期所在周的一周各天日期方法 一、用到的函數有datepart(),dateadd() 1、datepart()函數,返回代表指定日期的指定日期部分的整數。
語法:DATEPART ( datepart ,date ) 參數:datepart 是指定應返回的日期部分的參數。參數如下 2、DATEADD() 函數在日期中添加或減去指定的時間間隔。
語法:DATEADD(datepart,number,date) date 參數是合法的日期表達式。number 是您希望添加的間隔數;對于未來的時間,此數是正數,對于過去的時間,此數是負數。
datepart 參數可以是下列的值: 二、以系統當前時間為例,檢索一周各天時間的語句如下: 1、DATEPART(weekday,getdate())返回的是整型數值1-7,分別代表周日、周一到周六 2、語句分別獲取周日到周六的日期時間,然后用union 進行檢索結果連接。 3、已獲取周日時間為例: DATEPART(weekday,getdate()) 返回1,即當前日期就是周日,那么輸出當前時間getdate(), DATEPART(weekday,getdate()) 返回2,即前日期是周一,那么周日是前一天,使用函數獲取前一天的日期:dateadd(dd,-1,getdate()) 以此類推就獲取了日期所在周的周日日期時間。
select case when DATEPART(weekday,getdate())=1 then getdate() when DATEPART(weekday,getdate())=2 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-4,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-5,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-6,getdate()) end as '日期','周日' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-4,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-5,getdate()) end as '日期','周一' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-4,getdate()) end as '日期','周二' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-3,getdate()) end as '日期','周三' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-2,getdate()) end as '日期','周四' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,5,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-1,getdate()) end as '日期','周五' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,6,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,5,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,2,get。
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 table1 where year(d)=2010 and month(d)=7 and day(d) between 1 and 31and (Datepart(hour,d)>=22 or Datepart(hour,d)<6) 擴展資料: 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_百度百科。