如何使用sql获取前一天的记录?

     2023-05-08     75

关键词:

【中文标题】如何使用sql获取前一天的记录?【英文标题】:how to get records of previous day using tsql? 【发布时间】:2012-02-14 16:00:42 【问题描述】:

我需要前一天的所有记录吗?

你好

Select * from table1 where tabledate > getdate() -1 

使用此查询,我需要在午夜之后运行才能获得准确的结果。我需要在白天运行它并获取前一天的所有记录。

【问题讨论】:

SQL statement to select all rows from previous day的可能重复 【参考方案1】:

在 SQL Server 2005 中,这通常是将日期时间转换为日期的最快方法:

DATEADD(day, DATEDIFF(day, 0, yourDate), 0)

在你的情况下,它只完成一次,所以如何并不重要。但它确实给出了以下查询。

Select
  *
from
  table1
where
      tabledate >= DATEADD(day, DATEDIFF(day, 0, getDate()) - 1, 0)
  AND tabledate <  DATEADD(day, DATEDIFF(day, 0, getDate()),     0)

【讨论】:

【参考方案2】:

查看此页面。它是计算日期的绝佳资源。

http://www.simple-talk.com/sql/learn-sql-server/robyn-pages-sql-server-datetime-workbench/#calculatingdates

【讨论】:

【参考方案3】:

另一种方法是单独使用DATEDIFF

SELECT * FROM table1
WHERE DATEDIFF(DAY, tabledate, GETDATE()) = 1

日期差异为 1 的日期涵盖前一天的任何时间。

【讨论】:

它还会用一块巨大的石头砸到优化器上。如果tabledate 字段被索引,这个版本将能够在索引上使用范围搜索。相反,它需要扫描整个索引,计算每个唯一值的 DATEDIFF()。这是因为正在搜索的字段现在隐藏在您的函数调用中。替代方法稍长一些,但将所有函数调用保持在常量上,因此可以实现更快的 seek【参考方案4】:
DECLARE @d SMALLDATETIME;
SET @d = DATEDIFF(DAY, 0, GETDATE());

SELECT <cols> FROM dbo.table1
  WHERE tabledate >= DATEADD(DAY, -1, d)
  AND tabledate < @d;

【讨论】:

【参考方案5】:

试试这个:

your_field = cast(dateadd(D,-1,getdate()) as DATE)

【讨论】:

Oracle SQL 获取指定时间段内前一天和今天之间的记录

】OracleSQL获取指定时间段内前一天和今天之间的记录【英文标题】:OracleSQLgetrecordsbetweenPreviousdayandTodaywithinthespecifiedduration【发布时间】:2020-04-2311:19:01【问题描述】:如何准确获取从前一天上午9:01到今天上午9:00(任何时区)... 查看详情

如何使用 MS SQL 获取所有字段记录中使用的不同单词列表?

】如何使用MSSQL获取所有字段记录中使用的不同单词列表?【英文标题】:HowtogetadistinctlistofwordsusedinallFieldRecordsusingMSSQL?【发布时间】:2008-09-1923:00:41【问题描述】:如果我有一个名为“description”的表字段,那么获取该字段中... 查看详情

如何使用活动记录查询sql以获取指定时间之间的日期

】如何使用活动记录查询sql以获取指定时间之间的日期【英文标题】:Howtoquerysqlwithactiverecordfordatesbetweenspecifiedtimes【发布时间】:2012-08-1914:13:22【问题描述】:我有一个数据库,我只想提取日期在指定范围内的某些行。我不确... 查看详情

如何使用 SQL 选择的结果来获取另一个表中的记录?

】如何使用SQL选择的结果来获取另一个表中的记录?【英文标题】:HowtousearesultfromaSQLselecttogetrecordsinanothertable?【发布时间】:2021-05-2718:56:42【问题描述】:我很难创建一个从三个表中提取数据的Sql。下面是每个表的部分结构:C... 查看详情

如何使用sql从具有不同列的两个表中获取不同的记录

】如何使用sql从具有不同列的两个表中获取不同的记录【英文标题】:Howtogetdifferentrecordsfromtwotableswithdifferentcolumnsusingsql【发布时间】:2014-06-0503:37:52【问题描述】:我遇到了SQL问题。我想从具有不同列数的两个不同表中获取不... 查看详情

如何在 SQL 中以高性能的方式使用 PARTITION BY 获取最新记录?

】如何在SQL中以高性能的方式使用PARTITIONBY获取最新记录?【英文标题】:HowtoobtainthelatestrecordusingPARTITIONBYinaperformantwayinSQL?【发布时间】:2018-09-1321:37:10【问题描述】:在我们用于获取仪表板和报告信息的标准化Oracle12.2数据库... 查看详情

如何获取给定记录组中每一天的最后一条记录?

】如何获取给定记录组中每一天的最后一条记录?【英文标题】:Howtofetchlastrecordforeachdayinagivengroupofrecords?【发布时间】:2017-12-1509:06:51【问题描述】:我有一个结构如下的表:id|service_name|subscribers_count|date1|service1|1|2017-07-0101:01:... 查看详情

如何在 SQL 查询中获取最大 Sr 的记录

】如何在SQL查询中获取最大Sr的记录【英文标题】:HowtogetrecordswithmaximumSrinSQLquery【发布时间】:2019-02-0112:13:25【问题描述】:我有一个表DiagDetail,结构如下:我想获得最大Sr的不同记录。我尝试使用Groupby,但它不起作用,因为... 查看详情

这个 SQL 函数如何获取上个月的第一天?

】这个SQL函数如何获取上个月的第一天?【英文标题】:HowisthisSQLfunctiongettingthefirstdayofthepreviousmonth?【发布时间】:2019-03-2514:24:42【问题描述】:我有一个函数可以获取上个月的第一天,但​​我想了解“DATEDIFF(month,-1,getdate())-2... 查看详情

如何在n个月内使用sql(无程序)获取每个月的第一天和最后一天

】如何在n个月内使用sql(无程序)获取每个月的第一天和最后一天【英文标题】:Howtogetthefirstandlastdayofeverymonthusingsql(withoutprocedures)fornmonths【发布时间】:2021-08-2511:09:16【问题描述】:需要获取n个月过去几个月的日期n=月数(5)... 查看详情

sql获取某一时段中每一天中最大的时间的一条记录

 SELECT*FROM(SELECTROW_NUMBER()OVER(PARTITIONBYCONVERT(CHAR(10),DataTime,120)ORDERBYDataTimeDESC)ASrid,*FROMHour_4684807221950341358)AStWHERErid=1  --沉降监测1select*from(SELECT*FROM(SELECT 查看详情

操作方法:如何使用 SQL SELECT JOIN 提取最新记录

】操作方法:如何使用SQLSELECTJOIN提取最新记录【英文标题】:HowTo:HowtoextractthelatestrecordwithaSQLSELECTJOIN【发布时间】:2020-11-0913:13:05【问题描述】:美好的一天,我目前在使用SQL中的select语句时遇到问题。我正在尝试从表中提取... 查看详情

如何使用sql server中的组子句从每个组中获取最新记录[重复]

】如何使用sqlserver中的组子句从每个组中获取最新记录[重复]【英文标题】:Howtogetthelatestrecordfromeachgroupusinggroupclauseinsqlserver[duplicate]【发布时间】:2021-03-0514:18:15【问题描述】:我想通过设备时间戳获取每个组订单的前1条记录... 查看详情

使用 SQL,我怎样才能在给定的天数内对每一天的未指定数量的记录进行滚动平均?

】使用SQL,我怎样才能在给定的天数内对每一天的未指定数量的记录进行滚动平均?【英文标题】:UsingSQL,howcouldItakearollingaverageoveragivennumberofdaysacrossanunspecifiednumberofrecordseachofthosedays?【发布时间】:2020-06-2417:03:12【问题描述】... 查看详情

SQL:如何获取最近的记录

】SQL:如何获取最近的记录【英文标题】:SQL:Howtogetrecentrecord【发布时间】:2020-09-1212:32:29【问题描述】:我需要帮助。如何获取两个单独表的最新记录?表1是员工记录表,其中包含员工编号和员工姓名。表2是包含员工编号、... 查看详情

如何使用已定义的表获取我所需的记录

】如何使用已定义的表获取我所需的记录【英文标题】:Howtogetmyrequiredrecordwithdefinedtable【发布时间】:2018-11-1611:59:56【问题描述】:您好,我的表结构如下所示enterimagedescriptionhere用sql查询我想把它做成下面的结构格式enterimagedes... 查看详情

如何使用同一组中下一行的数据更新前一条记录

】如何使用同一组中下一行的数据更新前一条记录【英文标题】:Howtoupdateprecedingrecordwithdatafromfollowingrowwithinsamegroup【发布时间】:2019-01-2806:31:35【问题描述】:我有一组数据,我需要使用同一组内下一行中不同列的日期(较早... 查看详情

如何使用 DB2 sql 检查不在两个表中的记录以获取另一个第三个表中的日期?

】如何使用DB2sql检查不在两个表中的记录以获取另一个第三个表中的日期?【英文标题】:HowtocheckrecordsnotintwotablesforadateinanotherthirdtableusingDB2sql?【发布时间】:2021-08-1609:58:52【问题描述】:我有一个Employee表,其中包含带有ID的... 查看详情