2016-11-10 81 views
0

我有這樣如何從週一獲得的數據到今天的日期

DECLARE @T Table (ID INT,Name VARCHAR(10),DOB DATE) 
INSERT INTO @T (ID,Name,DOB) VALUES (1,'Mohan','2016-11-13') 
INSERT INTO @T (ID,Name,DOB) VALUES (6,'Manasa','2016-11-10') 
INSERT INTO @T (ID,Name,DOB) VALUES (2,'Raj','2016-11-07') 
INSERT INTO @T (ID,Name,DOB) VALUES (3,'Manny','2016-10-30') 
INSERT INTO @T (ID,Name,DOB) VALUES (4,'kamal','2016-11-01') 
INSERT INTO @T (ID,Name,DOB) VALUES (5,'Raj','2016-11-08') 

查詢的樣本數據:

​​

在這裏我無法從週一到今天的日期是指2016-我涵蓋了本週即將到來的所有日期。

我想這樣

ID Name DOB 
6 Manasa 2016-11-10 
5 Raj  2016-11-08 

數據表明我的最佳方式

+0

這個範圍內還有另一個日期是'2016-11-07',你想顯示它嗎? – Viki888

+0

是的,它是樣本數據,所以我們可以給它的輸出,如果它在範圍內 – mohan111

+0

可能的重複http://stackoverflow.com/q/7168874/1048425 – GarethD

回答

0
DECLARE @StartDate DATE = DATEADD(wk, DATEDIFF(wk,0,GETDATE()), 0),@EndDate DATE = GETDATE() SELECT * FROM @T WHERE DATEDIFF(DAY,DOB,@StartDate) <= 0 AND DATEDIFF(DAY,DOB,@EndDate) >= 0 
0

試試這個

DECLARE @T Table (ID INT,Name VARCHAR(10),DOB DATE) 
INSERT INTO @T (ID,Name,DOB) VALUES (1,'Mohan','2016-11-13') 
INSERT INTO @T (ID,Name,DOB) VALUES (6,'Manasa','2016-11-10') 
INSERT INTO @T (ID,Name,DOB) VALUES (2,'Raj','2016-11-07') 
INSERT INTO @T (ID,Name,DOB) VALUES (3,'Manny','2016-10-30') 
INSERT INTO @T (ID,Name,DOB) VALUES (4,'kamal','2016-11-01') 
INSERT INTO @T (ID,Name,DOB) VALUES (5,'Raj','2016-11-08') 


SELECT * from @T WHERE 
DOB >= DATEADD(wk, DATEDIFF(wk,0,GETDATE()), 0) 
AND DOB <= DATEADD(wk, 0,GETDATE()); 

這是給我正確的結果。

1

DATENAME()將解決您的問題。

DECLARE @T Table (ID INT,Name VARCHAR(10),DOB DATE) 
INSERT INTO @T (ID,Name,DOB) VALUES (1,'Mohan','2016-11-13') 
INSERT INTO @T (ID,Name,DOB) VALUES (6,'Manasa','2016-11-10') 
INSERT INTO @T (ID,Name,DOB) VALUES (2,'Raj','2016-11-07') 
INSERT INTO @T (ID,Name,DOB) VALUES (3,'Manny','2016-10-30') 
INSERT INTO @T (ID,Name,DOB) VALUES (4,'kamal','2016-11-01') 
INSERT INTO @T (ID,Name,DOB) VALUES (5,'Raj','2016-11-08') 

SELECT * from @T 
WHERE DATENAME(WEEK,DOB) = DATENAME(WEEK,GETDATE()) 
GO 
相關問題