FLYCF.CN
  • 首页
  • C#
  • 前端
  • 数据库
  • 杂记
  • 成果
FLYCF.CN
用于展示个人网站,成果展示,杂记
  1. 首页
  2. 数据库
  3. 正文

Sql Server 游标 生成一个随机时间

2021年01月05日 3753点热度 0人点赞 0条评论

Sql Server 为监控表(scada_info)的每一条记录生成一个随机时间,需要运用到Sql Server数据库中的日期处理函数(dateadd)、随机数(rand)、系统时间函数(getdate)、游标(cursor)知识点。

1、知识拓展 => 日期函数

-- 获取系统时间 --

select getdate();

-- dateadd 函数的使用 =>  在日期中添加或减去指定的时间间隔 --

语法:dateadd(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
年 => yy, yyyy
季度 => qq, q
月 => mm, m
年中的日 => dy, y
日 => dd, d
周 => wk, ww
星期 => dw, w
小时 => hh
分钟 => mi, n
秒 => ss, s
毫秒 => ms
微妙 => mcs
纳秒 => ns

示例:

--表示当前时间加一个月
select dateadd(mm,1,getdate());
--表示当前时间减一个月
select dateadd(mm,-1,getdate());

-- datediff 函数的使用 =>  返回两个日期之间的时间 --

语法:datediff(datepart,number,date)

startdate 和 enddate 参数是合法的日期表达式。
datepart 参数 和 dateadd 的参数一致

示例:

-- 表示2000距离当前时间年的数值 --
select datediff(yy,'2000',getdate());

2、知识拓展 => rand 随机数

-- rand 函数的使用 =>  返回一个随机数 --

语法:rand()
参数:seed,提供种子值的整数表达式(tinyint、smallint 或 int)。 如果未指定seed,则SQL Server数据库引擎随机分配种子值。对于指定的种子值,返回的结果始终相同。

示例:

--获取随机数
select rand()
--生成0-100之间的整数:
select cast( floor(rand()*100) as int)

3、为监控表(scada_info)的每一条记录生成一个随机时间

declare @temp_sid varchar(36)
-- 创建游标 --Local(本地游标)
declare aaa cursor for select sid from scada_info
-- 打开游标
Open aaa
-- 遍历和获取游标
fetch next from aaa into @temp_sid
--print @temp_sid
while @@fetch_status=0
begin
-- 生成100范围内的随机数,并給时间赋值
update scada_info set utime = dateadd(mi,cast(floor(rand()*100) as int),GETDATE())
where sid = @temp_sid

fetch next from aaa into @temp_sid -- 取值赋给变量
--
end
-- 关闭游标
Close aaa
-- 删除游标
Deallocate aaa

 

标签: cursor dateadd datediff getdate rand SQL Server 游标
最后更新:2021年01月07日

FLYCF.CN

个人杂记、成果展示

点赞
< 上一篇

文章评论

您需要 登录 之后才可以评论
分类目录
  • C#
  • 前端
  • 数据库
  • 杂记
2025年7月
一 二 三 四 五 六 日
 123456
78910111213
14151617181920
21222324252627
28293031  
« 8月    
最新 热点 随机
最新 热点 随机
uniapp运行到微信小程序开发工具 [Vue] 前端对 Textarea 的处理,保存原有的换行内容 [VUE]CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足 判断excel一列数据中有没有重复的数据 当前标识(IIS APPPOOL\DefaultAppPool)没有对“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files的写访问权限 Sql Server 游标 生成一个随机时间
Oracle 删除表出现 ORA-12083错误 删除计算机无效的Windows服务(services.msc) SQL Server 创建函数,使用函数 基于SqlSugar ORM框架封装基本CRUD 当前标识(IIS APPPOOL\DefaultAppPool)没有对“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files的写访问权限 启动IIS网站,万维网(W3SVC)已停止
关于本站

FLYCF.CN 用于平时记录开发中过程遇到的一些难点、技术和感悟,并展示开发的一些小程序。

联系我们

联系信息
QQ:3603009819
邮箱:3603009819@qq.com

咨询时间
星期一—五:9:00–20:00
星期六—日:11:00–20:00

COPYRIGHT © 2020 FLYCF.CN. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备12016344号