怎么使用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語句執行時間
declare @sttime datetime
set @sttime=getdate()
print @sttime
Select * from case1219 -- 把你的sql語句放在這里
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'
或者這么寫
DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;
SET @t1 = GETDATE();
Select * from dimDate ;-- 把你要查詢的sql語句放在這里
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;
sql如何按日期中的月份查詢
可使用SQL datediff (時間差)來查詢某個月份,這是最簡的方法:
DATEDIFF 函數
功能 返回兩個日期之間的間隔。
語法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )
date-part : year | quarter | month | week | day | hour | minute | second | millisecond
參數 date-part 指定要測量其間隔的日期部分。
要獲取某個月的SQL為如下:
select * from table where datediff(month,date_ColName,'2014-12-1')=0
date_ColName:為表中的日期格式的列
'2014-12-1':此為你要查詢的某個月的日期格式。
怎樣查詢sql語句,查看執行時間
通過Oracle執行計劃可以看到SQL的執行時間。
EXPLAIN PLAN FOR
SELECT * FROM table;
SELECT * FROM TABLE(DBMS_*Y);
SQL>set timing on --顯示執行時間
SQL>set autorace on ?C顯示執行計劃
SQL>set autorace on ?C顯示執行計劃
SQL>set autotrace traceonly ?C只顯示執行計劃即不顯示查詢出來的數據
設置完畢后執行SQL語句就會顯示執行時間。