sql如何查询历史同期记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql如何查询历史同期记录相关的知识,希望对你有一定的参考价值。

就是历年所有日期相同的记录都查出来,请各位高人指点,谢谢!

历年来所有日期相同的记录...
就是说每年的同一个月同一天就是相同的记录吧?
思路是在日期中截取月份,天数。对这两项进行比较。
1 怎样截取:DATE类型或VARCHAR类型的截取方式不同,具体你可以查;
2 查询天数和月份都相同的ID,再根据ID查询完整的记录

以上只是思路.....
参考技术A 我不知道你是不是问的是,历史的今天的记录

select * from 表名 where month(日期列) = month(getdate()) and day(日期列) = day(getdate())

这是查找历史的今天的记录。如果你不是问这个的话,就按这样的方式也可以取到别的日期数据。
参考技术B 假设表名table1, 日期列名column1,查询语句如下

select * from table1 a join
(select right(convert(varchar(10),column1,120),5) as rq from table1 group by right(convert(varchar(10),column1,120),5) having count(*)>1) b
on right(convert(varchar(10),a.column1,120),5) = b.rq
参考技术C 能不能给个表结构和记录看看,这样方便回答

如何查询历史sql

打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect -> 在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了
想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 T-sql代码就可以了
例如 如果Log是delete table where ...的话,生成的文件代码就是insert table .... 然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.
Log Explorer使用的一个问题
1)对数据库做了完全 差异 和日志备份 备份时选用了删除事务日志中不活动的条目 再用Log Explorer打试图看日志时 提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了
如果不选用了删除事务日志中不活动的条目 再用Log Explorer打试图看日志时,就能看到原来的日志
2)修改了其中一个表中的部分数据,此时用Log Explorer看日志,可以作日志恢复
3)然后恢复备份,(注意:恢复是断开Log Explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后,再打开Log Explorer 提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
参考技术A oracle数据库可以执行:select * from v$sql

以上是关于sql如何查询历史同期记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server Management Studio 中查看查询历史记录

数据库查询历史同期和总计脚本

sql作业查看历史记录只显示一天

找出 SQL 查询的历史

oracle查看历史session

如果我需要引用表记录的条件,如何创建高性能 SQL 选择查询?