一、取指定范围的数字
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)))
转载于:https://blog.51cto.com/kinwar/1381251