怎么使用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_百度百科。
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 行)
SQL查詢時間范圍語句
以下為MS_SQL的寫法分日期和小時條件;
select *
from xy
where
(id=27 or id=28)and convert(varchar(10),WRITETIME,120) between '2009-01-26' and '2009-02-06'
and
convert(varchar(8),WRITETIME,108) between '08:00:00'and '12:30:00'
sql 時間查詢語句
給傳遞過來的時間值加個引號
單引號:
SELECT * FROM cocl WHERE riqi>'"&request("kaishi")&"' AND riqi<'"&request("jieshu")&"' ORDER BY id DESC
雙引號:
SELECT * FROM cocl WHERE riqi>"""&request("kaishi")&""" AND riqi<"""&request("jieshu")&""" ORDER BY id DESC
在知道里看引號有點不清楚,你復制到記事本里看好點
-----------------------------------------------------
你的最終的SQL語句應該是
riqi>2001-01-01
還是
riqi>'2001-01-01'