sqlserver2008存储过程(比较两个日期大小和获取当前月最大天数的存储过程)
下面简单介绍sqlserver2008两个常用的存储过程
1、比较两个日期大小的存储过程
2、获取当前月份的最大天数的存储过程
1、创建比较两个日期大小的存储过程
1)创建比较两个日期大小的存储过程
/***
** 作用:比较两个日期的大小
**输入参数:第一个日期,第二个日期
**输出参数:返回结果
**/
create proc [dbo].[sp_CompareDate]
(
@FirstDate varchar(30), --第一个日期
@SecondDate varchar(30), --第二个日期
@IsCompare int output --返回结果
)
as
begin
--判断两个日期大小--
if(@SecondDate >= @FirstDate)
begin
--返回1:代表:第二个日期大于等于第一个日期--
set @IsCompare = 1
end
else
begin
--返回0:代表:第二个日期小于第一个日期--
set @IsCompare = 0
end
--返回结果--
select @IsCompare
end
2)调用存储过程
--调用比较两个日期存储过程--
declare @IsCompare int
exec sp_CompareDate '2016-08-12 12:23:34','2016-08-13 14:23:34',@IsCompare output
3)执行结果
第一个日期小于第二个日期
第一个日期大于第二个日期
2、获取当前月份的最大天数的存储过程
1)创建存储过程
/***
*获取系统当前月的最大天数
***/
create proc [dbo].[sp_GetMaxDay]
@Day varchar(30) output --返回天数
as
begin
--取到当前日期
select GETDATE()
--取到当前日期与sql初始日期(1900-01-01 00:00:00)的差值(单位:月)
select DATEDIFF(MM,0,GETDATE())
--给初始日期加上上面得到的月数,得到本月1号的日期
select DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0)
--给初始日期加上上面得到的月数+1,得到下个月1号的日期
select DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)
--将上面得到的日期减去1,得到本月最后一天的日期
select DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)-1
--取到上面日期的“日”
set @Day= DAY(DATEADD(MM,DATEDIFF(MM,0,GETDATE())+1,0)-1)
select @Day
end
2)调用存储过程
--调用比较两个日期存储过程--
declare @day varchar(30)
exec sp_GetMaxDay @day output
3)执行结果
Ps: 如果只要查看多少天,上面那些过程可以注释掉,只返回当前月最大天数
sqlserver2008存储过程(比较两个日期大小和获取当前月最大天数的存储过程)的更多相关文章
- 分享:JS比较两个日期大小
发布:thatboy 来源:Net [大 中 小] 本文介绍下,在javascript代码中,比较两个日期大小的方法,有需要的朋友参考下. 转自:http://www.jbxue.com/ ...
- js比较两个日期大小
//比较两个日期大小 function dateCompare(startDate,endDate){ var aStart=startDate.split('-'); //转成成数组,分别为年,月, ...
- DateTime.Compare(t1,t2)比較两个日期大小
DateTime.Compare(t1,t2)比較两个日期大小,排前面的小,排在后面的大,比方:2011-2-1就小于2012-3-2返回值小于零: t1 小于 t2. 返回值等于零 : t1 等于 ...
- DateTime.Compare(t1,t2)比较两个日期大小
DateTime.Compare(t1,t2)比较两个日期大小,排前面的小,排在后面的大,比如:2011-2-1就小于2012-3-2返回值小于零: t1 小于 t2. 返回值等于零 : t1 等于 ...
- js中两个日期大小比较,获取当前日期,日期加减一天
一.两个日期大小比较 1.日期参数格式:yyyy-mm-dd // a: 日期a, b: 日期b, flag: 返回的结果 function duibi(a, b,flag) { var arr = ...
- java之比较两个日期大小----https://blog.csdn.net/dongfangbaiyun/article/details/51225469
https://blog.csdn.net/dongfangbaiyun/article/details/51225469 java之比较两个日期大小 最近又用到两个日期大小的比较,因此记录在此,方便 ...
- JS 比较日期相隔都少天&& 比较两个日期大小&&指定日期往前后推指定天数
//这些天常接触到有关于js操作日期事 就小结了一下,希望对你有帮助 function conversionDate(a,b){ var start =a.split('-'); var end = ...
- java比较两个日期大小
方法一 /** * 比较两个日期之间的大小 * * @param d1 * @param d2 * @return 前者大于后者返回true 反之false */ public boolean com ...
- java 比较两个日期大小(2) 用before(), after()
调试代码,我就不整理了,记下after() before() 觉得这张图好美,从人家的博客上截的,找不到链接了
随机推荐
- Net作业调度(一) -Quartz.Net入门
背景 很多时候,项目需要在不同时刻,执行一个或很多个不同的作业. Windows执行计划这时并不能很好的满足需求了,迫切需要一个更为强大,方便管理,集群部署的作业调度框架. 介绍 Quartz一个开源 ...
- 大白话讲解Promise(一)
去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本 ...
- 常用网络工具 ipconfig arp traceroute
如今的计算机是离不开网络的计算机了,因而我们对网络要有一基础的认识.连不上网,程序运行不正常之类的,多少都与网络有关.本文将介绍常用的工具. 网络出问题 ipconfig ping 网络连不上,首先要 ...
- [译]Asp.net MVC 之 Contorllers(二)
URL路由模块 取代URL重写 路由请求 URL路由模块的内部结构 应用程序路由 URL模式和路由 定义应用程序路由 处理路由 路由处理程序 处理物理文件请求 防止路由定义的URL 属性路由 书接上回 ...
- WPF入门教程系列十八——WPF中的数据绑定(四)
六.排序 如果想以特定的方式对数据进行排序,可以绑定到 CollectionViewSource,而不是直接绑定到 ObjectDataProvider.CollectionViewSource 则会 ...
- 有关binlog的那点事(三)(mysql5.7.13)
这次我们要探索更精细的binlog内容,上次讨论的Query_event和Rows_event肯定有让你疑惑不解的问题.Query_event中的status-vars环境变量有哪些,Rows_eve ...
- Java 循环中标签的作用
continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环.在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使 ...
- The transaction log for database 'xxxx' is full due to 'ACTIVE_TRANSACTION'
今天查看Job的History,发现Job 运行失败,错误信息是:“The transaction log for database 'xxxx' is full due to 'ACTIVE_TRA ...
- Javascript刷题 》 查找数组元素位置
找出元素 item 在给定数组 arr 中的位置 输出描述: function indexOf(arr, item) { ..... } 如果数组中存在 item,则返回元素在数组中的位置,否则返回 ...
- C#设计模式系列:开闭原则(Open Close Principle)
1.开闭原则简介 开闭原则对扩展开放,对修改关闭,开闭原则是面向对象设计中可复用设计的基石. 2.开闭原则的实现 实现开闭原则的关键就在于抽象,把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规 ...