一、取指定范围的数字

create view myview

as

select re=rand()


--自定义函数:取得指定范围的随机数

create function mydata

(

   @a int,

   @b int

)

returns decimal(38,0)

as

begin

   declare @r decimal(38,0)

   select @r=cast(re*(@b-@a)+@a as decimal(38,0)) from myview

   return(@r)

end

go


--调用(可以随意指定你要的数据范围)

select user_no,dbo.mydata(1000,9999) number from table1


--可以在你原来的查询基础上增加一列number,如不增加列,

--那就把上面的结果放入一个临时表 #a,然后update

--如:

update table1 set number1=a.number from #a a,table1 b where a.user_no=b.user_no



二、产生日期区间随机日期==

select cast(dbo.mydata(1993,1985) as nvarchar(4))+'-'+cast(dbo.mydata(12,1) as nvarchar(2))+'-'+cast(dbo.mydata(30,1) as nvarchar(2))


select dateadd(dd,datediff(dd,'2010-05-01','2012-06-30')*RAND(),'2010-05-01')

--2010-05-01 换为起始日期

--2012-06-30 换为结束日期



三、查询指定日期

--这个月第一天是哪一天

Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)


--本周星期一是哪一天

Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)


--一年中的第一天

Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)


--季度中的第一天

Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)


--当天的半夜

Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)


--取上个星期天

select DATEADD(WEEK, DATEDIFF(WEEK,0,getdate()), -8)


--上个月的最后一天

select dateadd(dd,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))


--这个月最后一天

Select DATEADD(dd,-day(getdate()),DATEADD(mm,1,DATEADD(DD, DATEDIFF(dd,0,getdate()), 0)))