今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
来源:互联网 发布:mac book pro型号大全 编辑:程序博客网 时间:2024/06/05 07:57
方法一:
关于日期的命名
@DTBegin DATETIME=NULL,
@DTEnd DATETIME=NULL,
按照时间进行查询
AND
(@DTBegin IS NULL OR DATEDIFF ( dd ,@DTBegin ,T_CM_SubscribeInfo.ApplyTime) >= 0 )
AND
(@DTEnd IS NULL OR DATEDIFF ( dd ,T_CM_SubscribeInfo.ApplyTime, @DTEnd ) >= 0 )
方法二:
在最初设定好默认时间。
IF @BeginDate IS NULL
SET @BeginDate = '1980-1-1'
ELSE
SELECT @BeginDate = CONVERT(char(11),@BeginDate ,120) + '00:00:00'
IF @EndDate IS NULL
SET @EndDate = '9998-1-1'
ELSE
SELECT @EndDate = CONVERT(char(11),@EndDate ,120) + '23:59:59:998'
在后面进行调用
AND ((@BeginDate IS NULL AND @EndDate IS NULL) OR ( S.declareDate BETWEEN @BeginDate AND @EndDate))
以某字符分割字符串(分割字符串函数)
CREATE FUNCTION F_BD_SplitString_Query
(
@StrExpression VARCHAR(MAX),
@StrSplit VARCHAR(32)
)
RETURNS @Table Table(col VARCHAR(32))
AS
BEGIN
WHILE(CHARINDEX(@StrSplit,@StrExpression)<>0)
BEGIN
IF(SUBSTRING(@StrExpression,1,CHARINDEX(@StrSplit,@StrExpression)-1) IS NOT NULL
AND LTRIM(RTRIM(SUBSTRING(@StrExpression,1,CHARINDEX(@StrSplit,@StrExpression)-1)))<>'' )
INSERT INTO @Table(col) VALUES (SUBSTRING(@StrExpression,1,CHARINDEX(@StrSplit,@StrExpression)-1))
SET @StrExpression = STUFF(@StrExpression,1,CHARINDEX(@StrSplit,@StrExpression),'')
END
IF(@StrExpression IS NOT NULL AND LTRIM(RTRIM(@StrExpression)) <> '')
INSERT INTO @Table(col) VALUES (@StrExpression)
RETURN
END
调用函数:
CREATE PROCEDURE P_EmployeeInfoForPosition_Query
@OperatorPointCode VARCHAR(32) = NULL, -- 操作者所在网点号
@OperatorCode VARCHAR(32), -- 操作码
@EmployeePosition VARCHAR(128)=null, -- 职位信息
@RetrieveCode VARCHAR(32)=NULL,--2012-6-3 肖建鹏添加
@Stars int = NULL
AS
BEGIN
-- 职位信息参数
DECLARE @PositionInfo VARCHAR(Max)
DECLARE @Spliter VARCHAR(32)
SET @PositionInfo = dbo.F_GetSystemParam(@OperatorPointCode,@OperatorCode,@EmployeePosition) --系统参数获取职位信息
SET @Spliter = ';'
-- 员工信息查询
SELECT
tei.EmployeeCHName AS 中文名称,
tei.EmployeeCode AS 工号
FROM T_EmployeeInfo tei
WHERE (tei.EmployeePosition IN (SELECT Col FROM dbo.F_BD_SplitString_Query(@PositionInfo,@Spliter)) OR @EmployeePosition IS NULL OR @EmployeePosition = '') --如果职位为空的话,就查询出网点的所有员工
AND tei.PointCode = @OperatorPointCode
AND (@Stars is null or Stars =@Stars)
AND (Status = 1)
AND (@RetrieveCode IS NULL OR @RetrieveCode ='' OR tei.EmployeeCHName LIKE '%'+@RetrieveCode+'%' OR tei.EmployeeSpellingCode LIKE '%'+@RetrieveCode+'%')--通过姓名和拼音简码搜索员工
END
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
- 关于oracle的存储过程以及调用。
- JdbcTemplate调用存储过程的一些方法:
- 关于MS2K一些存储过程的总结
- 关于Mysql 字段遇到关键字注解处理 存储过程 以及 函数 定时器 的笔记
- MySQL函数和存储过程的区别以及代码示例
- Qt中一些常用时间显示的函数调用示例
- 查询数据库存储过程或者函数 文本 包含 某字段的 存储过程
- 关于使用存储过程的一些好处以及注意事项
- 关于使用存储过程的一些好处以及注意事项
- Sql 存储过程以及 in 子句 的一些用法总结
- sybase存储过程的写法以及java的调用方法
- sybase存储过程的写法以及java的调用方法
- mysql字符串字段按照逗号截取的存储过程
- 动态生成SQL的存储过程,以及调用方法
- 完整的分页存储过程以及c#调用方法
- 今日的收获
- 关于存储过程的调用
- 10306 - e-Coins
- POJ 1005
- 使用Jdeveloper进行工程调试时出现 IO异常的解决
- JavaScrip单线程引擎工作原理
- Oracle使用游标循环调用存储过程
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
- Andorid编程心得-利用代码解决Android WIFI休眠后连接断开的问题
- 计算机专业就业
- hdu4474-Yet Another Multiple Problem
- Java线程之ThreadLocal
- #(井号),##(双井号), #@在C/C++的#define宏定义中的特殊用法
- 线程创建与退出
- 通过什么途径能够深入了解JavaScript引擎是如何工作的?
- 系统视图sys.databases的collation_name 列为 NULL的问题