首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取从周一到今天的数据

如何获取从周一到今天的数据
EN

Stack Overflow用户
提问于 2016-11-10 19:20:10
回答 3查看 57关注 0票数 0

我有一个这样的样本数据

代码语言:javascript
复制
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')

查询:

代码语言:javascript
复制
SELECT * from @T WHERE 
DOB >= DATEADD(wk, DATEDIFF(wk,0,GETDATE()), -1) 
AND DOB <= DATEADD(wk, DATEDIFF(wk,0,GETDATE()), 5) 

在这里,我无法从周一到今天的日期意味着2016-11-10。我涵盖了本周即将到来的所有日期。

我想得到这样的数据

代码语言:javascript
复制
ID  Name    DOB
6   Manasa  2016-11-10
5   Raj     2016-11-08

建议我最好的方法

EN

回答 3

Stack Overflow用户

发布于 2016-11-10 21:20:50

DATENAME()将解决您的问题。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2016-11-10 19:33:19

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-11-10 19:36:38

尝尝这个

代码语言:javascript
复制
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());

这给了我适当的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40526343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档