首页 > 代码库 > SqlServer取得一个月的所有有日期
SqlServer取得一个月的所有有日期
SqlServer的自定义函数可以分为三类但我只用过上面两类,可以称作标量函数和表值函数,区别只是返回数据的类型,表值函数返回的是一个虚拟表
SqlServer的函数在这里
因某种需求我写了一个这样的函数:输入时开始日期和结束日期,输出是一个表,从开日期到结束日期内的所有日期
比如我输入时20140701,20140708,输出是这样的
代码如下,欢迎指正
CEATE FUNCTION [dbo].[fn_GetDays](@startdate DATE,@enddate DATE) RETURNS TABLE AS RETURN( SELECT DATEADD(day,number,@startdate) AS days FROM master..spt_values WHERE TYPE = ‘P‘ AND DATEADD(DAY,number,@startdate) <= @enddate )
代码解释:
如下语句是从SqlServerMaster表中取得连续的数值,如下代码能取到1~2047的连续数值
SELECT number FROM master..spt_values WHERE TYPE = ‘P‘
这句是SqlServer系统函数,不多说
DATEADD(DAY,number,@startdate)
下面是 另一个函数逻辑和上面的很类似,作用是取十分钟位单位的时间
CREATE FUNCTION [dbo].[fn_GetTenMis](@startDatetime DATETIME,@endtDateime DATETIME) RETURNS TABLE AS RETURN( select DATEADD(MI,number*10,@startDatetime) AS TenMis from master..spt_values where type = ‘P‘ and DATEADD(MI,number*10,@startDatetime) <= @endtDateime )
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。