当前位置:  数据库>sqlserver

sql server 特殊日期加减函数的例子

    来源: 互联网  发布时间:2014-08-29

    本文导语:  sql server 特殊日期加减函数的例子,供大家学习参考。   代码如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_DateADD]') and xtype in (N'FN', N'IF', N'TF'))   drop function [dbo].[f_DateADD] GO    /**//*--特殊日期加减函数  ...

sql server 特殊日期加减函数的例子,供大家学习参考。
 

代码如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_DateADD]') and xtype in (N'FN', N'IF', N'TF'))
  drop function [dbo].[f_DateADD]
GO
  
/**//*--特殊日期加减函数
  
  对于日期指定部分的加减,使用DATEADD函数就可以轻松实现。
  在实际的处理中,还有一种比较另类的日期加减处理
  就是在指定的日期中,加上(或者减去)多个日期部分
  比如将2005年3月11日,加上1年3个月11天2小时。
  对于这种日期的加减处理,DATEADD函数的力量就显得有点不够。
  
  本函数实现这样格式的日期字符串加减处理:
  y-m-d h:m:s.m | -y-m-d h:m:s.m
  说明:
  要加减的日期字符输入方式与日期字符串相同。日期与时间部分用空格分隔
  最前面一个字符如果是减号(-)的话,表示做减法处理,否则做加法处理。
  如果日期字符只包含数字,则视为日期字符中,仅包含天的信息。
--*/
  
/**//*--调用示例
  
  SELECT dbo.f_DateADD(GETDATE(),'11:10')
--*/
  
CREATE FUNCTION dbo.f_DateADD(
@Date   datetime,
@DateStr  varchar(23)
)RETURNS datetime
AS
BEGIN
  DECLARE @bz int,@s varchar(12),@i int
  
  IF @DateStr IS NULL OR @Date IS NULL
    OR(CHARINDEX('.',@DateStr)>0
      AND @DateStr NOT LIKE '%[:]%[:]%.%')
    RETURN(NULL)
  IF @DateStr='' RETURN(@Date)
  
  SELECT @bz=CASE
      WHEN LEFT(@DateStr,1)='-' THEN -1
      ELSE 1 END,
    @DateStr=CASE
      WHEN LEFT(@Date,1)='-'
      THEN STUFF(RTRIM(LTRIM(@DateStr)),1,1,'')
      ELSE RTRIM(LTRIM(@DateStr)) END
  
  IF CHARINDEX(' ',@DateStr)>1
    OR CHARINDEX('-',@DateStr)>1
    OR(CHARINDEX('.',@DateStr)=0
      AND CHARINDEX(':',@DateStr)=0)
  BEGIN
    SELECT @i=CHARINDEX(' ',@DateStr+' ')
      ,@s=REVERSE(LEFT(@DateStr,@i-1))+'-'
      ,@DateStr=STUFF(@DateStr,1,@i,'')
      ,@i=0
    WHILE @s>'' and @i''
  BEGIN
    IF CHARINDEX('.',@DateStr)>0
      SELECT @Date=DATEADD(Millisecond
          ,@bz*STUFF(@DateStr,1,CHARINDEX('.',@DateStr),''),
          @Date),
        @DateStr=LEFT(@DateStr,CHARINDEX('.',@DateStr)-1)+':',
        @i=0
    ELSE
      SELECT @DateStr=@DateStr+':',@i=0
    WHILE @DateStr>'' and @i

    
 
 

您可能感兴趣的文章:

  • 在SQL中有函数,比如COUNT(*),怎样通过JDBC调用获得函数值????
  • SQL中含函数,比如COUNT(*),怎样在JDBC接口中取出函数值????
  • sql server中ISNULL函数与Mysql中IFNULL函数的用法
  • sql数据库不能直接用instr函数
  • T-SQL常用的聚合函数
  • sql server中自定义一个简单的 split 函数
  • 初学者问题:标准的sql里有处理日期的函数吗?
  • access与sql server几个常用函数的区别(图文)
  • SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期 iis7站长之家
  • sql函数实现递归查询示例
  • T-SQL常用的数学函数
  • T-SQL实例 函数结果设置为列别名
  • SQL Server中的数据复制到的Access中的函数
  • C处理SQL命令字符串的函数哪里有?
  • SQL中函数 replace 的参数1的数据类型ntext无效的解决方法
  • SQL中有count这个函数,请问如何将这个值取出
  • 高分求java.sql类库的类说明,函数及方法!
  • php is_numberic函数产生sql注入漏洞怎么解决
  • sql函数CAST与CONVERT的区别
  • SQL的SUBSTR()函数使用介绍
  • sql server简单查询的例子(sql入门)
  • sql server 使用ntile获取数据的例子
  • Sql Server一次更新多列数据的例子
  • SQL SERVER导入、导出文本文件的例子
  • SqlServer中用exec处理sql字符串中含有变量的小例子
  • sql语句提取括号中文字的例子
  • 我急需一个JSP+sql2000编写的论坛,哪位能提供一个完整的例子,不胜感激----在线等待
  • sql自连接查询的例子(图文)
  • sql2005递归查询的例子
  • 拼接SQL字符串与日期模糊查询的例子
  • Sql Server 删除主键与重建主键的例子
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何将java.util.Date类型的日期转换成java.sql.Date类型的日期?
  • SQL日期查询与比较方法
  • sql server日期相减 的实现详解
  • jsp中在oracle中查询日期类型时sql语句该怎么写啊?
  • sql语句中,怎样进行两个日期的时间差,用秒数表示??
  • T-SQL常用的时间和日期函数
  • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
  • SQL Server 比较日期大小的方法
  • SQL 返回期间内的所有日期
  • T-SQL判断一个日期是否为今天的函数
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
  • sql日期格式转换方法汇总(常用)
  • T-SQL自定义函数返回前一天或后一天日期的例子
  • sql server 日期推算处理的例子
  • sql server中获取指定日期所在月份的第一天的代码
  • 有关java.sql.ResultSet 利用SetDate往 oracle 中插入时间和日期的问题!!
  • SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • 急问:如何将java.util.Date转换成java.sql.Date,来算出两个日期相差天数?
  • sql server 日期操作的一些例子
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3