首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL select,其中startdate是今天的日期

SQL select,其中startdate是今天的日期
EN

Stack Overflow用户
提问于 2014-12-09 21:31:08
回答 4查看 11.9K关注 0票数 4

我正在尝试编写一个查询,其中的子句是员工的开始日期是今天的日期。

代码语言:javascript
复制
select * from tbl_employees
where Startdate = getdate()

问题是开始日期是'2014-12-09 00:00:00.000‘,函数getdate返回的日期和时间类似于'2014-12-09 08:25:16.013’。

我怎么写一个只考虑日期的查询呢?

EN

回答 4

Stack Overflow用户

发布于 2014-12-09 21:33:58

您只需要日期部分。最简单的方法是:

代码语言:javascript
复制
select *
from tbl_employees
where cast(Startdate as date) = cast(getdate() as date);

但是,如果要使用索引,最好不要在函数调用中包含该列。所以,这样更好:

代码语言:javascript
复制
where (StartDate >= cast(getdate() as date) and StartDate < cast(getdate() + 1 as date))
票数 7
EN

Stack Overflow用户

发布于 2014-12-09 21:34:37

代码语言:javascript
复制
select * from tbl_employees 
where CONVERT(VARCHAR(10),Startdate,110) = CONVERT(VARCHAR(10),GETDATE(),110)
票数 3
EN

Stack Overflow用户

发布于 2014-12-09 21:35:07

你可以用来只比较日期部分而不是time..some内容,比如

代码语言:javascript
复制
IF CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)

代码语言:javascript
复制
CONVERT(VARCHAR(10), GETDATE(), 112)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27380132

复制
相关文章

相似问题

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