首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期搜索SQL server 2005

按日期搜索SQL server 2005
EN

Stack Overflow用户
提问于 2010-08-11 12:50:54
回答 5查看 734关注 0票数 0

大家好,我想在今天之前从发票和客户端搜索数据,我使用的是GETDATE()

例如,两个表

1名客户

代码语言:javascript
复制
 - ID   int
 - Name Varcher

2发票

代码语言:javascript
复制
 - ID int
 - ClientID int
 - date  Datetime
 - Total  money

查询

代码语言:javascript
复制
  Select * 
  from client c 
        inner join invoice i on c.id = i.ClientID 
  where i.date = getdate()

结果

代码语言:javascript
复制
  nothing 

但我今天有一些数据有相同的日期

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-11 12:56:46

试着跟随哪里的条件

代码语言:javascript
复制
WHERE DateDiff(dd, OrderDate, getdate()) = 0
or 
WHERE Convert(varchar(20), OrderDate, 101) = Convert(varchar(20), getdate(), 101)

所以你的答案是

代码语言:javascript
复制
Select * 
  from client c 
        inner join invoice i on c.id = i.ClientID 
  WHERE DateDiff(dd, i.date, getdate()) = 0
票数 1
EN

Stack Overflow用户

发布于 2010-08-11 12:59:18

单行道

代码语言:javascript
复制
where i.date >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0),
and i.date < DATEADD(dd, DATEDIFF(dd, 0, GETDATE())+1 , 0)
票数 1
EN

Stack Overflow用户

发布于 2010-08-11 13:00:44

GETDATE()返回日期和时间。

我们需要把日期推迟到今天开始。

代码语言:javascript
复制
SELECT * 
FROM client c 
INNER JOIN invoice i 
   ON c.id = i.ClientID 
WHERE i.date >= CAST(FLOOR(CAST(GETDATE() AS float)) AS DATETIME)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3458400

复制
相关文章

相似问题

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