使用sql语句获得当前月天数
--获得当月天数
select day(dateadd(mm,1,getdate())-day(getdate())) as 本月天数 ;
select getdate() as 当前日期;
select day(getdate()) as 目前第几天;
select getdate()-day(getdate()) as 上个月最后一天; -- 减去了当前的天数
select dateadd(mm,1,getdate())-day(getdate()) as 加上一个月; -- 也就是这个月的最后一天
select day(dateadd(mm,1,getdate())-day(getdate())) as 获得当月天数;
......
看看以下SQL语句:
select row_number() over(partition by xs.xsbh, xs.kch order by coalesce(xs.bkxnxqh, xs.xnxqh) desc) rn
row_number():代表列
partition by 代表按什么进行分组
order by对每一组信息进行排序
coalesce()是替换的意思 例如:上面的SQL语句的意思是,如果bkxnxqh为空,那么就去xnxqh
rn 代表查询结果的序号 ......
在安装Visual Studio+SQL Server的开发环境的时候往往会有很多错误,其中最麻烦的一条就死安装完成之后没有数据库管理工具,即没有SQL Server 2005 Management Studio。出现这样的问题主要有两个原因,一是系统已经存在其他版本的SQL数据库或者Express版本,二是安装环境的时候像我一样先安装了Visual Studio 2005/2008,然后一路狂点下一步,结果安装了VS自带的Express简易版数据库。
如果安装了Express版数据库,可以安装Microsoft SQL Server Management Studio Express管理工具来管理这个集成的小数据库,不过这个数据库只能导出表的结构,不能到处表里面的数据,实践证明可以把C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data里面的.mdf文件取出来即可获取某个数据库。
不过很多人应该都不想只使用一个Express版本的数据库,既然我都搞到了Professiobal Edition版本的,不用就对不起微软的一片真情了,一般解决没有数据库管理工具的方法如下:
1.先安装SQL Server 2005,再安装vs相关软件。
2.在安装vs2005或vs2008时,不要安装SQL Server 2005 Express,VS安装完后再安装SQL Server 2005。
3.如果先安装了 vs2005 或 vs2008且安装了自带的SQL Server Exp ......
前一段时间在维护一个老项目的时候发现,在执行一个较大的存储过程时,总是报“常规网络错误,请检查您的网络文档”。在后续的维护检查中发现,是事物超时导致执行中止的。
下面是调整过程:
一、把SQL SERVER的等待响应时间调到最大值
show advanced options 选项:
show advanced options 选项用来显示 sp_configure 系统存储过程高级选项。
当设置 show advanced options 为 1 时,才可以使用 sp_configure 列出高级选项。
默认值为 0。该设置立即生效(无需停止并重新启动服务器)。
执行SQL语句
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
......
操作系统的支持 版本和发行版 实例、数据库和表空间 实例名和SID 系统数据库和系统表空间
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据库专家们也通常会期待着在他们的下一份工作中能学到点不一样的东西,那些有勇气的人们则愿意花时间、金钱和精力去学习新的东西,也有其他因为换了新公司或者是为了找新的工作而去学习新的系统的人们,毋庸置疑的一点就是公司老板和人力专家们会更加青睐于那些拥有多个领域经验的求职者。
依我个人的经验来看,在学习一个新的数据平台的时候,最好的方法就是在新的环境中去发现那些你已知的东西,这样学习起来会简单很多。当然,当中也会遇到一些全新的概念需要去学习,或者是忘掉一些你现在已知的概念,但不管怎么说你不是从零开始的。比如说一个做SQL Server开发人员在要写Oracle存储过程的时候可能会先去找那些内置的函数然后比较它们之间不同点,她也可能会去比较变量声明以及错误处理的异同。
本系列文章中我将尝试对Microsoft SQL Server和Oracle ......
操作系统的支持 版本和发行版 实例、数据库和表空间 实例名和SID 系统数据库和系统表空间
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据库专家们也通常会期待着在他们的下一份工作中能学到点不一样的东西,那些有勇气的人们则愿意花时间、金钱和精力去学习新的东西,也有其他因为换了新公司或者是为了找新的工作而去学习新的系统的人们,毋庸置疑的一点就是公司老板和人力专家们会更加青睐于那些拥有多个领域经验的求职者。
依我个人的经验来看,在学习一个新的数据平台的时候,最好的方法就是在新的环境中去发现那些你已知的东西,这样学习起来会简单很多。当然,当中也会遇到一些全新的概念需要去学习,或者是忘掉一些你现在已知的概念,但不管怎么说你不是从零开始的。比如说一个做SQL Server开发人员在要写Oracle存储过程的时候可能会先去找那些内置的函数然后比较它们之间不同点,她也可能会去比较变量声明以及错误处理的异同。
本系列文章中我将尝试对Microsoft SQL Server和Oracle ......
数据库实例结构 事务一致性(Transactional Consistency)和基于时间点的恢复(Point-in-time Recovery) 系统元数据
top数据库实例结构
当Oracle实例启动之后,所看到的就是在服务器内存上的一个个不同内存块加上产生的与这些内存交互的后台进程。Oracle文档将这些内存结构和进程收的很详细。
由Oracle实例所占用的内存块成为SGA(System Global Area),它的大小可以通过调整Oracle初始化参数(initialisation parameter)进行修改,在SGA里边至少会创建3个不同的区域,它们分别是:
数据块缓存区(Database Buffer Cache)这里缓存的是数据块。和SQL Server一样,用户不会直接的访问数据文件上的数据:当读取数据时,相关的数据块会从数据文件中拷贝到内存中;修改数据时也是修改内存中的数据,然后再由单独的进程将数据缓存区中被修改的数据写入到数据库中。重做日志缓存(Redo Log Buffer)SGA中的这个区域连续的记录着数据缓存区数据修改的记录,重做日志缓存中的内容会被写入到在线日志文件中去。共享池(Shared Pool)SGA中有一大块的内存用作共享池,共享池等价于SQL Server中的执行缓存(Procedure Cache)。它的主要作用就是缓存数据库中最近执行过的SQL语句。共享 ......
数据库实例结构 事务一致性(Transactional Consistency)和基于时间点的恢复(Point-in-time Recovery) 系统元数据
top数据库实例结构
当Oracle实例启动之后,所看到的就是在服务器内存上的一个个不同内存块加上产生的与这些内存交互的后台进程。Oracle文档将这些内存结构和进程收的很详细。
由Oracle实例所占用的内存块成为SGA(System Global Area),它的大小可以通过调整Oracle初始化参数(initialisation parameter)进行修改,在SGA里边至少会创建3个不同的区域,它们分别是:
数据块缓存区(Database Buffer Cache)这里缓存的是数据块。和SQL Server一样,用户不会直接的访问数据文件上的数据:当读取数据时,相关的数据块会从数据文件中拷贝到内存中;修改数据时也是修改内存中的数据,然后再由单独的进程将数据缓存区中被修改的数据写入到数据库中。重做日志缓存(Redo Log Buffer)SGA中的这个区域连续的记录着数据缓存区数据修改的记录,重做日志缓存中的内容会被写入到在线日志文件中去。共享池(Shared Pool)SGA中有一大块的内存用作共享池,共享池等价于SQL Server中的执行缓存(Procedure Cache)。它的主要作用就是缓存数据库中最近执行过的SQL语句。共享 ......