由于 在我使用的数据表中 lasttime字段 在写入数据表时写入字符串‘20120401145112827’类型 在业务中需要对其字段时间做处理 以下过程是使用数据库自定义方法 简化Sql语句
--Sql中自定义方法
create function StrToDateTime(@DateStr as varchar(18))
returns varchar(24) --注意 returns 不是 return
as
begin
declare @date varchar(24);
set @date=@DateStr;
set @date=(SUBSTRING(cast (@date as varchar(18)),1,4)+'-'+SUBSTRING(cast (@date as varchar(18)),5,2) +'-'+SUBSTRING(cast (@date as varchar(18)),7,2)
+' '+SUBSTRING(cast (@date as varchar(18)),9,2)
+':'+SUBSTRING(cast (@date as varchar(18)),11,2)
+':'+SUBSTRING(cast (@date as varchar(18)),13,2));
return @date;
end
以下为执行方法 打印结果为 2012-04-01 14:51:12
declare @returntime varchar(24)
exec @returntime=StrToDateTime '20120401145112827'
print convert(varchar(24),convert(datetime,@returntime),20)
以下代码为初始的Sql语句 未使用自定义方法
select * from (
select id,interID,cpid,intername,reply,lasttime,CASE lasttime
WHEN '0' THEN getdate()-3
Else cast((SUBSTRING(cast (lasttime as varchar(18)),1,4)
+'-'+SUBSTRING(cast (lasttime as varchar(18)),5,2)
+'-'+SUBSTRING(cast (lasttime as varchar(18)),7,2)
+' '+SUBSTRING(cast (lasttime as varchar(18)),9,2)
+':'+SUBSTRING(cast (lasttime as varchar(18)),11,2)
+':'+SUBSTRING(cast (lasttime as varchar(18)),13,2)
) as varchar(24))
end as ldate,setTime from xsreuserinter
) as temp
where (datediff(hh,temp.ldate,getdate())>72 and datediff(hh,temp.setTime,getdate())>72) order by lasttime desc
o(∩_∩)o 哈哈 以下为调用该方法之后的Sql语句
--Notice: 调用该方法时 一定要加前缀dbo. 否则 报错“该内置方法不识别” 该方法在哪个数据库下执行 只属于哪个数据库 跨数据库无效
--调用方法为 select dbo.StrToDateTime(lasttime)
select * from (
select id,interID,cpid,intername,reply,lasttime,CASE lasttime
WHEN '0' THEN getdate()-3
Else convert(datetime,dbo.StrToDateTime(lasttime),20) --该处调用function
end as ldate,setTime from xsreuserinter
) as temp
where (datediff(hh,temp.ldate,getdate())>72 and datediff(hh,temp.setTime,getdate())>72) order by lasttime desc
在此区别一下 function 和 procedure
procedure为独立存储过程,使用EXEC命令,而自定义函数可以在一个SQL语句内调用,也可使用exec命令调用。
数据库自定义方法可以简化sql语句 并且可以多次重复利用 :-) 以前都没用过 开心 顶一个!
分享到:
相关推荐
本示例中,“自定义注解实现拦截SQL”是关于如何通过注解来动态修改执行的SQL语句,以在其中增加特定的条件。这个功能在数据库操作中特别有用,比如在MyBatisPlus框架中,可以用来实现灵活的数据过滤或者权限控制。 ...
### C#中SQL语句调用详解 在.NET框架中,使用C#语言与SQL Server进行交互是非常常见的操作。本文将详细介绍如何在C#应用程序中编写SQL语句,并通过ADO.NET来执行这些语句。 #### ADO.NET简介 ADO.NET(ActiveX ...
例如,我们可以创建一个切面,该切面会在方法调用前/后检查是否有`@Query`注解,并根据注解中的SQL模板执行数据库操作。 3. **动态SQL**: 使用注解拼接SQL的一个关键优点是动态性。例如,我们可以根据方法参数...
然而,有时候我们可能需要执行更复杂的自定义SQL,这时就需要在配置文件中引入SQL语句。以下是一些关键步骤: 1. **配置文件设置**:在Hibernate的主配置文件(通常是hibernate.cfg.xml)中,我们需要开启对SQL查询...
SQL Server中的自定义函数是数据库开发中非常重要的组成部分,它们允许开发者创建自定义的逻辑,以便在查询中重用和简化复杂操作。本篇主要关注SQL Server 2008中的三种自定义函数:标量函数、内联表值函数和多语句...
在 SQL Server 中,存储过程比直接运行 SQL 语句慢的原因是 Parameter sniffing 问题。Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计信息来优化执行计划,但这种优化方式有时可能会导致执行...
### 自定义函数在SQL中的应用 #### 一、引言 在数据库操作中,SQL(Structured Query Language)作为处理关系型数据库的标准语言被广泛应用。为了提高SQL查询的灵活性与复用性,许多数据库系统提供了创建自定义...
然而,在某些情况下,我们需要将这些表达式转换为实际的SQL语句,以便在数据库中执行。本文将深入探讨如何实现这一过程。 首先,我们需要了解Lambda表达式的基本结构。Lambda表达式通常以参数列表开始,后面跟着一...
- 在方法内部,创建并初始化`OracleCommand`对象,设置其`CommandText`属性为`cmdText`,然后使用`PrepareCommand`方法设置其他属性(如CommandType)和参数。 - 使用`ExecuteNonQuery`方法执行命令,清理参数列表...
本资源集合了泛微系统中与SQL Server数据库交互时常用的各种SQL语句,涵盖了组织架构、流程管理以及自定义需求等多个方面。以下是对这些SQL语句知识点的详细解释: 1. **组织架构相关SQL**: - 组织架构是企业信息...
数据库SQL语句解析系统是一种专门用于分析和执行SQL语句的软件系统,它在数据库管理系统(DBMS)中扮演着至关重要的角色。SQL(Structured Query Language)即结构化查询语言,是用于管理关系型数据库的标准编程语言...
在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据访问和映射机制。这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。...
SQL语句切换是数据库编程中常见的操作,特别是在开发多用户、多任务的应用程序时,它涉及到如何高效地在不同的SQL查询之间进行切换,以满足不同场景的需求。在易语言中,这是一种重要的编程技巧,有助于提高代码的...
这个例子程序展示了如何在SQL数据库环境中调用C#编写的.NET组件中的函数方法。 首先,我们需要了解SQL Server中的CLR集成。SQL Server 2005开始引入了对.NET Framework的内置支持,允许开发者使用.NET语言(如C#或...
SQLHelper类是一种常见的用于简化数据库操作的工具,它允许开发者通过传入数字和对象参数,而无需手动编写SQL语句,从而提高开发效率和代码的可维护性。这个描述提及的"sqlhelper类"可能是自定义的一个辅助类,或者...
在 SQL Server 中,自定义函数和存储过程都可以创建捆绑 SQL 语句,并存储在服务器中供以后使用。它们可以提高工作效率,减少编程时间,允许重复使用编程代码,隐藏 SQL 细节,并实现集中化的维护。 尽管自定义函数...
例如,可以创建一个名为`CreateDB`的方法,该方法接收数据库名称、SQL连接字符串作为参数,通过反射获取嵌入的SQL脚本内容,并根据用户输入的连接信息创建新的数据库,然后逐条执行SQL语句以构建数据库结构和数据。...
SQL语句自动生成器是一款专为数据库操作设计的实用工具,它简化了编写SQL语句的过程,使得即使是对SQL不熟悉的操作者也能轻松地完成各种数据库操作。这款工具以其直观的用户界面和高效的代码生成能力,深受用户好评...
在SQL Server中,用户自定义函数(User-Defined Functions, UDFs)允许开发者创建能够执行特定任务并返回结果的自定义逻辑。这些函数不仅可以增强SQL Server的功能性,还能提高代码的可读性和可维护性。用户自定义函数...
自定义函数可以极大地提高SQL语句的灵活性和可重用性,使得数据库操作更加高效且定制化。 ### 一、SQL自定义函数的类型 SQL自定义函数主要分为以下几种类型: 1. **标量函数(Scalar Function)**:返回单个值的...