简体   繁体   English

SQL显示 从今天开始选择数据| 仅当日

[英]SQL display | select data from today date | current day only

I have this query, it supposes to display data from current date (today) only 我有这个查询,它假设仅显示当前日期(今天)的数据

SELECT * FROM Customer WHERE visitTime <= GETDATE() AND visitTime > GETDATE() - 1

where visitTime is datetime type 其中visitTime日期时间类型

But it doesn't work well because I think problem is at AND visitTime > GETDATE() - 1 but I don't know how to fix this, anybody has any suggestions? 但这无法正常工作,因为我认为问题出在AND visitTime > GETDATE() - 1但是我不知道该如何解决,有人有什么建议吗?

Look at this example: 看这个例子:

declare @visitTime datetime  ='2014-10-16 23:59:59.000'
select GETDATE() GETDATE, @visitTime visitTime, GETDATE() - 1 [GETDATE-1]

GETDATE                 visitTime               GETDATE-1
2014-10-17 00:02:18.980 2014-10-16 23:59:59.000 2014-10-16 00:02:18.980

You'll see that the visittime date clearly falls in the range you specified as the lower bound (the -1) subtracts a whole day and not just the time part. 您会看到访问时间日期明显落在您指定的范围内,因为下限(-1)减去一整天,而不仅仅是时间部分。

You could use this instead: 您可以改用以下方法:

-- using GETDATE() for the upper bound misses visitTime that are 
-- on the current day, but at a later time than now.
WHERE visitTime < DateAdd(Day, DateDiff(Day, 0, GetDate())+1, 0)
AND   visitTime >= DateAdd(Day, DateDiff(Day, 0, GetDate()), 0)

or if you're on SQL Server 2008+ that has a date data type, this: 或者,如果您使用的是具有date数据类型的SQL Server 2008+,则:

WHERE CAST(visitTime AS DATE) = CAST(GETDATE() AS DATE)

Note that GETDATE() is T-SQL specific, the ANSI equivalent is CURRENT_TIMESTAMP 注意, GETDATE()是T-SQL特定的,ANSI等效是CURRENT_TIMESTAMP

Assuming today is midnight last night to midnight tonight, you can use following condition 假设今天是昨晚午夜至今晚午夜,则可以使用以下条件

Select * from Customer where 
visitTime >=  DateAdd(d, Datediff(d,1, current_timestamp), 1)
and
visitTime < DateAdd(d, Datediff(d,0, current_timestamp), 1);
SELECT * FROM Customer WHERE visitTime > =  convert(date,getdate()) 
and visitTime <  dateadd(d,1,convert(date,getdate())) 

Check this out 看一下这个

select *
from Customers
where convert(date,createddate) = convert(date,getdate()); 

仅获取迄今为止的详细信息:
SELECT * FROM PRODUCTION WHERE CAST(CREATIONDATE AS DATE) = CAST(GETDATE() AS DATE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 SQL从今天开始按日期选择 - SQL select by date from today 按今天(当前)日期显示数据的 SQL 查询? - SQL query to show data by today(current) date? Linq to Sql今天仅从数据库获取日期数据 - Linq to Sql get today date only data from db SQL查询以选择从前一天的4:15:01 pm到今天的4:15:00 pm的数据 - Sql query to select data from the day before at 4:15:01 pm to today at 4:15:00 pm 如何从由 datetime_received 排序的 sql 表中获取 select 数据,但仅适用于当前日期 - How to select data from an sql table ordered by datetime_received but only for the current date PHP代码仅通过SQL显示当前日期信息 - PHP code to display current date infor only from SQL 用于选择从昨天的特定日期/时间到当天的特定日期/时间的范围的 SQL 查询 - SQL query to select range from specific date/time yesterday to specific date/time current day SQL:是否获取最近3个月的数据(该列中仅包含可用数据),而不是当前月或今天? - SQL : Get last 3 month data (with only available data in the column), not from current month or today? sql查询来验证具有截止日期和截止日期的表格,并且该表格应仅允许当前日期而不是第二天 - sql query to validate the form which has from and to date and it should allow only for current date not the next day 元数据库中的 SQL 查询 - 显示今天的数据或日期选择数据 - SQL Query in Metabase - show today data or date select data
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM