发布:2024/11/18 21:50:41作者:管理员 来源:本站 浏览次数:182
方法一:
复制代码
declare @StartTime datetime
declare @EndTime datetime
set @StartTime ='2019-02-1 00:00'
set @EndTime ='2019-02-19 00:00'
select dateadd(DAY,number,@StartTime) as dt
from master.dbo.spt_values where type ='P'
and number <=DATEDIFF(DAY, @StartTime, @EndTime)
复制代码
原理:利用select number from master.dbo.spt_values where type ='P' 的0-2047个常量生成时间段,缺点是只能生成2048条数据
关于spt_values可以参考http://www.cnblogs.com/cjm123/p/8295844.html
方法二:
select Convert(varchar(20),dateadd(day,(row_number() over(order by getdate()) - 1),'2019-02-1 00:00'),23) as Date
from sysobjects
原理:利用row_number给getdate()排序,数据查询时,每行数据计算的getdate()越来越大,就会排列出从1,2,3...这样的序列。生成的数据列行数和sysobjects的行数一样,也可以使用sysobjects以外的表,但必须有数据,一般使用sysobjects,因为sysobjects记录系统信息,肯定会有数据的。
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4