/******************************
*    函数名:RandDateTime
*    作用: 返回两个时间范围内的一个随机时间
*    Author:    兰习刚
*    Date:      2009-11-30
*******************************/
Go
--创建函数
create Function RandDateTime
(@RandNum Decimal(38,18),--0-1之际随机数值建议Rand()@StartTime DateTime,    --第一个时间@EndTime DateTime       --第二个时间
)
Returns DateTime
As
BeginDeclare @HourDiff Decimal(38,18)    --两个时间之间的小时差值Declare @MsPartDiff Decimal(38,18)  --毫秒部分的差值  Declare @SmallDate DateTimeDeclare @ReturnDateTime DateTime   /*取各部分差值*/Set @HourDiff = DateDiff(hh,@StartTime,@EndTime)Set @MsPartDiff = Abs(DateDiff(ms,DateAdd(hh,@HourDiff,@StartTime),@EndTime))Select @SmallDate=(Case When @HourDiff>0 Then @StartTime Else @EndTime End)    --取较小的时间 Set @HourDiff = Abs(@HourDiff)ActionLable:Declare @HourDecimal Decimal(38,18)    --小时的小数部分  Declare @HourString varchar(200)Set @HourDiff = @HourDiff * @RandNum   Set @HourString = CONVERT(VARCHAR(200),@HourDiff)Set @HourString = SubString(@HourString,CharIndex('.',@HourString)+1,Len(@HourString))Set @HourString = '0.' + @HourStringSet @HourDecimal = Convert(Decimal(38,18),@HourString)    --获得小时的小数部分Set @MsPartDiff = (@MsPartDiff + @HourDecimal * 3600*1000) * @RandNum   /*毫秒差值由于之前@MsPartDiff是两个时间小时之后的毫秒差值  @HourDecimal * 3600*1000 有小时的小数部分的毫秒差值不会大于小时毫秒不会溢出*/Set @ReturnDateTime = DateAdd(hh,@HourDiff,@SmallDate)Set @ReturnDateTime = DateAdd(ms,@MsPartDiff,@ReturnDateTime)       Return @ReturnDateTime
End--测试示例
select dbo.RandDateTime(Rand(),'2011-03-21 00:00:00.000','2011-03-21 23:59:00.000')
go 10--运行结果
/*
-----------------------
2011-03-21 16:44:58.990(1 row(s) affected)-----------------------
2011-03-21 00:00:33.313(1 row(s) affected)-----------------------
2011-03-21 15:04:58.777(1 row(s) affected)-----------------------
2011-03-21 06:32:21.347(1 row(s) affected)-----------------------
2011-03-21 15:11:51.047(1 row(s) affected)-----------------------
2011-03-21 14:39:23.597(1 row(s) affected)-----------------------
2011-03-21 07:24:17.247(1 row(s) affected)-----------------------
2011-03-21 06:15:49.653(1 row(s) affected)-----------------------
2011-03-21 02:06:14.757(1 row(s) affected)-----------------------
2011-03-21 10:49:18.370(1 row(s) affected)
*/

返回两个时间范围内的一个随机时间相关推荐

  1. java方法,返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期...

    在最近的项目中,有这么一个需求,根据开始时间.结束时间得到两个时间段内所有的日期,以下分享我的代码给大家. 1.以下的这个方法适用于jdk1.5以上的版本 /** * 根据开始时间和结束时间返回时间段 ...

  2. java 假设当前时间_Java如何比较当前时间是否在两个时间范围内

    假设ISODateTimeFormat.timeNoMillis()始终是适当的解析器,您希望使用 Interval类.此外,使用 parseLocalTime()而不是parseDateTime() ...

  3. JAVA判断当前时间在时间范围内

    我们在日常开发的时候肯定有围绕时间选择的一些功能, 今天给大家分享一个java如何判断当前时间是否在所选择时间范围内的一个小demo public static void main(String[] ...

  4. 生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。

    生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题.`` public class Demo02 {public static void main(String[] args) ...

  5. 地图点随机分布均匀_如何在单位球内产生一个均匀分布的随机的点?

    在光线跟踪算法里,有一个子问题:如何在一个半径为1的单位球里面,产生一个均匀分布的随机的点(相同的体积里有相同数量的点).下面这篇文章里给出了5种可能的方法 (参考文献[3]).当然,后面我们会看到, ...

  6. 项目经理怎么在两周内熟悉一个项目的业务?

    项目经理空降到一个进行中的项目,怎么在两周内熟悉一个项目的业务? 四步帮你解决:明确项目业务目标,了解系统功能模块,弄清系统核心业务流程,多使用系统. 一.明确项目业务目标 明确项目业务目标,也就是了 ...

  7. Java黑皮书课后题第8章:*8.31(几何:交点)编写一个方法,返回两条直线的交点。四个点存放在4*2的二维数组points中。编写一个程序,提示用户输入4个点,并显示交点

    *8.31(几何:交点)编写一个方法,返回两条直线的交点.四个点存放在4*2的二维数组points中.编写一个程序,提示用户输入4个点,并显示交点 题目 题目描述 破题 代码 本题运行实例 题目 题目 ...

  8. Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值

    7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...

  9. Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠

    **3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠 题目 题目概述 运行示例 破题 代码 ...

  10. java自定义一个方法,用于返回两个整数的和

    java自定义一个方法,用于返回两个整数的和 /*** 自定义一个方法* 用于返回两个整数的和*/ public class Test17 {public static int getSum(int ...

最新文章

  1. iOS自动布局框架-Masonry详解
  2. array,arraylist,string的总结
  3. 简单明了区分escape、encodeURI和encodeURIComponent
  4. 计算机基础与应用教程计算机硬件,计算机基础系列一:计算机硬件
  5. 外观模式(三层解耦)
  6. Clion配置Toolchains
  7. BirtViewer和Struts2框架的整合
  8. 在C#中列出进程,杀掉进程。
  9. 图解设计模式阅读(概述)
  10. 超市条码扫描枪使用前如何进行参数设置
  11. 匹配区县代码_省份、城市、区县三级联动Html代码
  12. 腾讯云学生服务器9元/月
  13. 设计一个正方形类,其中包括边长一个属性,包括构造函数,析构函数,求面积的成员函数和求周长的成员函数,通过正方形类定义2个正方形对象,并求建设一个下图所示的活动场地的费用。(用户输入中间草坪场地的边长)
  14. 斩断***黑手:如何使用IceSword冰刃
  15. MyBatis框架(二):多对一查询、一对多查询、ResultMap、动态SQL
  16. LeetCode881. 救生艇
  17. 工业交换机智能监控管理方案
  18. MLDonkey Web set
  19. ISAM2.h/ISAM2.cpp
  20. 章鱼哥APp到底怎么赚钱?为什么滴滴公司会和它进行合作?

热门文章

  1. Magento 使用心得
  2. Hibernate HQL详解
  3. 三 数据结构 --数和二叉树
  4. thinkphp3.2.3入口文件详解
  5. 什么是相关性以及为什么需要初始化它?
  6. java实现kafka发送消息和接收消息(java无注解方式+springBoot注解方式)
  7. 使用maven搭建ssm项目配置+tomact
  8. ssh登录失败处理步骤
  9. 牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)
  10. JavaScript语法(三)