易截截图软件、单文件、免安装、纯绿色、仅160KB

【SQL SERVER中一些特别地方的特别解法2】


/*----------------------------------------------------------------
-- Author  :feixianxxx(poofly)
-- Date    :2010-04-20 20:10:41
-- Version:
--      Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86) 
Mar 29 2009 10:27:29 
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Evaluation Edition on Windows NT 6.1 <X86> (Build 7600: )
-- CONTENT:SQL SERVER中一些特别地方的特别解法
----------------------------------------------------------------*/
 
--1.关于where筛选器中出现指定星期几的求解
 
--环境
create table test_1
(
id int,
value varchar(10),
t_time datetime
)
insert test_1 
select 1,'a','2009-04-19' union 
select 2,'b','2009-04-20' union 
select 3,'c','2009-04-21' union 
select 4,'d','2009-04-22' union 
select 5,'e','2009-04-23' union 
select 6,'f','2009-04-24' union 
select 7,'g','2009-04-25' 
go
我们一般通过 datepart(weekday )进行求解,比如求解星期的记录
select * from test_1
where DATEPART(WEEKDAY,t_time+@@DATEFIRST-1)=2
/*
id          value      t_time
----------- ---------- -----------------------
3           c          2009-04-21 00:00:00.000
*/
这里涉及到 @@datefirst 这个系统变量,一般我们用来调节不同地方的日期习惯。
如果你觉得关于这个变量很难也懒得去依赖它调节,这里还有一种方法
 
你可以使用一个参照日期,通过相同星期数成的倍数的原理进行查询
select * from test_1 
where D


相关文档:

在SQL Server中使用NewID()方法产生随机集

在SQL Server中使用NewID()方法产生随机集
例如考试系统中的随机出题
刚开始想到的是Random类
但是Random效率有点低
后来想到了在数据库里的newid()
于是采用了下边方法:
select top 5 * from tablename order by newid()
在此标记一下 ......

生成表中数据的sql语法的存储过程

      一般用BCP在处理这个事情,但有时也需要一些特殊的处理,以下是生成表中的一些数据,带有where条件的选择生成数据,是我一个同事修改的,直接拿过来用了:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
Create Proc proc_insert_where (@tablename varchar(256),@where varchar(256 ......

利用SQL移动硬盘文件

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_movefile]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_movefile]
GO
/*--移动服务器上的文件
 不借助 xp_cmdshell ,因为这个在大多数时候都被禁用了
--邹建 2004.08(引用请保留此信息)--*/
/*--调用示例 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号