【问题标题】:Get records between two dates from a DB table without a timestamp column incrementally从没有时间戳列的数据库表中增量获取两个日期之间的记录
【发布时间】:2019-06-15 05:11:42
【问题描述】:

我有一个没有时间戳列的表: 它的数据如下:

 name     city
------  ------
 Deepak  Pune
 amit    Mumbai
 raj     Chennai 

现在第二天,我们有以下数据:

    name    city
   -----  ------  
   Deepak  Chennai
   amit    Mumbai
   raj     Chennai 
   vikas   Panjab

现在我想查找那些被修改或插入或删除的记录。

例如: 命名城市 ----- ------
迪帕克钦奈(从浦那更新到钦奈) 阿米特孟买 拉杰钦奈 vikas Panjab(插入新记录)

但我不想比较,因为表有很多列,因为有很多列和十亿条记录。 这就是为什么我想在两个时间戳之间挑选记录,所以我才知道哪些被修改了。

所以 O/P:

name  City
---- ------
Deepak Chennai
vikas  Panjab

请建议我需要使用什么..

【问题讨论】:

  • “所以我才知道哪些被修改了。” 没有插入或更新行的详细信息..?你没有。如果不存储该元数据,您将无法获得该信息。就像你被问到“你能找出我们有多少客户有蓝眼睛吗?”但这不是您存储的数据。
  • 您使用的是哪个数据库?您已标记 mysqlsql-server
  • 您好,如果您使用的是 sql server 2016 或更新版本,您可以查看临时表 docs.microsoft.com/fr-fr/sql/relational-databases/tables/…

标签: mysql sql-server sql-server-2008 sql-server-2016


【解决方案1】:

据我了解您的要求。您有一张像 users 这样的带有数据的表格

Name Null? Type         
---- ----- ------------ 
NAME       VARCHAR2(10) 
CITY       VARCHAR2(10)



NAME    CITY
----    -----
raj     chennai
deepak  pune
amit    mubai
vikas   punjab

你可以用这个。它可能会帮助你。

SELECT *
FROM (SELECT u.*,ROWNUM FROM users u ORDER BY ROWNUM DESC)
WHERE ROWNUM=1;

结果会是这样的

 NAME     CITY   ROWNUM
 -----    -----  -----
 vikas    punjab   4

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 2011-08-12
    • 2021-04-11
    • 2013-10-19
    • 2019-03-14
    • 2014-05-22
    • 2016-08-04
    • 2023-03-25
    • 2015-05-02
    相关资源
    最近更新 更多