/******************************
*    函数名: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. java基本类型转换,随记
  2. 中小企业对于云计算的3大误解
  3. P2888 [USACO07NOV]牛栏Cow Hurdles(Floyd算法)
  4. FIE2020-2020年的论文相关记录
  5. Java泛型详解,通俗易懂只需5分钟
  6. not in SQL语句转化为 not exists
  7. ORM框架-工具-产品开发之四 开发代码生成器 Template Studio Development (一)
  8. 对AIOps智能化运维的基础理解
  9. 卡诺模型案例分析_质量管理神器,Kano模型您可知道?
  10. python语言开发环境搭建_Python开发环境搭建-Go语言中文社区
  11. ECG的滤波和检波资源汇总
  12. 深度学习:感知机perceptron
  13. 操作系统课程设计-文件管理系统(JAVA)
  14. C语言实现一个关机程序
  15. 【微信小程序怎么开店铺】微信小程序店铺怎么制作?
  16. CUBA Platform
  17. la la love on my mind
  18. 浅谈强缓存和协商缓存
  19. 【技巧】我是如何 搜索 到想要的信息的
  20. VBS 常用总汇 (http://blog.csdn.net/sgear/article/details/1380223)

热门文章

  1. ActionScript3.0中获取变量类型的方法
  2. C++中利用输入输入流进行一行输入
  3. 使用Spring实现AOP(XML+注解)
  4. 在idea中配置jetty
  5. .net core 图片合并,图片水印,等比例缩小,SixLabors.ImageSharp
  6. java-weixin-tools接入微信
  7. a标签增加onclick事件提示未定义function
  8. 自写的简单屏蔽特定字符的TextBox和数字TextBox
  9. Series的idxmax和argmax
  10. 记录一次JDK版本问题,引发的思考