从没有时间戳列的数据库表中增量获取两个日期之间的记录
Posted
技术标签:
【中文标题】从没有时间戳列的数据库表中增量获取两个日期之间的记录【英文标题】: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
请建议我需要使用什么..
【问题讨论】:
“所以我才知道哪些被修改了。” 没有插入或更新行的详细信息..?你没有。如果不存储该元数据,您将无法获得该信息。就像你被问到“你能找出我们有多少客户有蓝眼睛吗?”但这不是您存储的数据。 您使用的是哪个数据库?您已标记mysql
和 sql-server
。
您好,如果您使用的是 sql server 2016 或更新版本,您可以查看临时表 docs.microsoft.com/fr-fr/sql/relational-databases/tables/…
【参考方案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
【讨论】:
以上是关于从没有时间戳列的数据库表中增量获取两个日期之间的记录的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 SQL 语句从两个特定日期(由用户指定)之间的数据库表中获取数据?