sql - 是否可以找出 SQL Server 中有多少数据库数据早于 N 年?

标签 sql sql-server database sql-server-2008 sql-server-2005

我在 SQL Server 中有两个数据库。我想找出早于(比方说 3)年的数据。

我知道数据库创建日期,目前我有大约 550 GB(均为数据库)的数据跨越 7 年,我想知道“有多少数据库数据(总共 550 GB)超过 3年或(5 年)'?

我正在浏览此链接,但无法获得预期的数据。

SQL SERVER – Query to find number Rows, Columns, ByteSize for each table in the current database – Find Biggest Table in Database

我现在想到的解决方案之一是找出占7年的总行数(很容易得到这个数字),占5年的总行数(从创建日期开始)(don '知道如何获得这个号码)。

那么对于 row_count_7_years 占 550 GB 的数据,row_count_5_years 是多少?我会得到大概的数据。

请帮忙

最佳答案

出于此类目的,您应该像 marc 提到的那样保留一些日期时间字段。我想你没有。

在您建议的解决方案中,您可以从表中获取全部行数(我想是 7 年),但是您将无法获取 5 年内的行,因为没有日期。

您可以获得 7 年的全部记录并将它们除以年数,并且只有在您的数据库 avarage 满足的情况下,您才能查询 top (numberOFRows in an year)*5 并排序他们通过 row_number()。结果 - 行,您应该删除。但我不建议您使用此解决方案。

我建议您更改表格并为每个表格添加日期时间列。在此之前,您应该对整个日期进行备份并将其复制到某处。 3 年后,您将能够进行清理。

关于sql - 是否可以找出 SQL Server 中有多少数据库数据早于 N 年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892488/

相关文章:

Java - 数据库锁定

SQLite 相当于 PostgreSQL 的 GREATEST 函数

sql - 如何使用Explain Plan来优化查询?

java - 如何在android中使用契约(Contract)类?

sql - 如何在sql数据库中对组合应用组合?

sql - 如何从批处理文件执行 postgres 的 sql 查询?

c# - 如何在Azure中指定上传和导出功能的路径

sql - 在 SQL 中将多行和多列合并为一行

mysql - 返回一个列值的结果,但不返回另一个 SQL

mysql - 将 Rollup 与 ORDER BY 结合使用时出现的问题