Sql语句:
select DATEADD(ss,CONVERT(INT,ABS(CHECKSUM(NEWID()))%3600),convert(datetime,GETDATE(), 20));
Sql分析:
SELECT
DATEADD( --这个是dateadd函数,
ss, ---秒
CONVERT ( INT, ABS( CHECKSUM( NEWID( ) ) ) % 3600 ), --这个是convert函数,获取一个3600内的随机数。
CONVERT ( datetime, GETDATE( ), 20 ) --这个是convert函数,获取时间,以日期形式。
)
思路:获取3600的随机数,获取当前时间(并指定时间展示方式),通过dateadd,将随机数添加到获取到的时间秒之上,便可获取近一小时之内的随机时间。其他同理:随机一周,随机一月
----------------------------------------------------------------------------------------
select NEWID( )--A0B53F33-67AF-4F17-9027-1E2C2B4B1D72
select CHECKSUM( NEWID( ) ) ---2078778671
select ABS( CHECKSUM( NEWID( ) ) ) --667118496
select CONVERT ( INT, ABS( CHECKSUM( NEWID( ) ) ) % 3600 ) --183(随机获取一个3600之内的数)
----------------------------------------------------------------------------------------
select convert(datetime,'2019-12-11 00:00:01', 20) -- 获取当前时间,一日期形式(2006-05-16 10:57:47)
其他日期格式见;此处
----------------------------------------------------------------------------------------
select DATEADD(ss, -100,GETDATE( ));--在当前时间上减100秒
DATEADD(在年/月/日/时/分/秒上添加,添加的数量,被操作的时间),其他的操作见;此处