sql返回两个日期之间的日期_函数实现

-- Description:返回两段日期之间的所有日期    <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[GetBetweenDate]
(    
    @StartTime DATETIME        --开始日期
  ,@EndTime DATETIME        --结束日期
)
RETURNS  @TABLE table (BetweenDate DATETIME)  --返回的结果集
AS
BEGIN

DECLARE @day INT  
SELECT @day=DATEDIFF(day, @StartTime,@EndTime)  --计算两个日期之间的天数
/*作一个循环处理(start)*/
WHILE (@day>0)
BEGIN
    INSERT INTO @TABLE
            ( BetweenDate )
    VALUES  ( DATEADD(DAY,@day,@StartTime)  -- 添加一条记录从开始时期  加上天数,然后做一个减1计算,一直累积下来
              )
    SET @[email protected]
END
/*作一个循环处理(end)*/
INSERT INTO @TABLE ( BetweenDate )VALUES  ( @StartTime)--把最后一条记录添加进去(即开始日期)

RETURN

END

执行运行结果如下:

时间: 2024-08-07 20:26:37

sql返回两个日期之间的日期_函数实现的相关文章

php日期处理汇总,指定日期加减多少天,循环两个指定日期之间的日期

一. (1)指定日期加减多少天 (2)循环两个指定日期之间的日期 例: $start_time = '2017-07-01';$end_time = '2017-07-10'; 获取时间差 $diff= strtotime($end_time)-strtotime($start_time);$num = $diff/(24*60*60)+1; for ($i=0; $i < $num; $i++) { $selectTime = date("Y-m-d",strtotime(&q

Java 获取两个日期之间的日期

1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end 结束日期 * @return 日期集合 */ private List<Date> getBetweenDates(Date start, Date end) { List<Date> result = new ArrayList<Date>(); Calendar tem

oracle中用SQL实现两个日期间的日期形成一个数据集

比如输入2014-06-1 和 2014-07-1形成一个2014-06-1 2014-06-22014-06-3...2014-07-1 的数据集. 解决方法: select date'2014-06-01'+rownum-1 as my_numbersfrom dualconnect by level <= (date'2014-07-01' - date'2014-06-01') + 1 date 和to_date功能一样 select to_date('2014-06-01','yyyy

MySQL返回两个时间的指定时差自定义函数

上面是运行效果预览图, 具体内容请移步至MYSQL自定义函数返回两个时间的指定时间差

获取两个日期之间的日期形成一个集合

/** * @param start 起始日期 * @param end 结束日期 * @return */ public static List<String> getDate(String start,String end){ // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List<String> list = new ArrayList<String>(); //保存

PHP 获取两个日期之间的日期数组/月份数组

function getEmptyArr($s_time,$e_time,$type){ $tmp = array(); if($type=='day'){ $s_time = strtotime($s_time); $e_time = strtotime($e_time); while($e_time>=$s_time){ $tmp[] = date('Y-m-d',$e_time); $e_time -= 86400; } }else if('month'){ $s_time = strto

php 获取开始日期与结束日期之间所有日期

这里提供三种方法: 1 /** 2 * 方法一: 获取指定日期段内每一天的日期 3 * @date 2017-02-23 14:50:29 4 * 5 * @param $startdate 6 * @param $enddate 7 * 8 * @return array 9 */ 10 function getDateRange($startdate, $enddate) { 11 $stime = strtotime($startdate); 12 $etime = strtotime($

sql计算两个时间之间的差,并用时分秒表示

这是自己写的方法,总觉得会有更好的办法实现这个效果呢? SELECT case when CONVERT(nvarchar,DATEDIFF(SECOND,FinishAt,getdate() ))>86400 then CONVERT(nvarchar, DATEDIFF(SECOND,FinishAt,getdate() )/86400)+'天'+CONVERT(nvarchar, DATEDIFF(SECOND,FinishAt,getdate() )%86400/3600)+'时'+CO

PHP&amp;获取两个时间日期之间得所有日期

/** * 获取两个时间之间的日期 * @param $startDate * @param $endDate * @return array */ function getDatesBetweenTwoDays($startDate, $endDate) { $dates = []; if (strtotime($startDate) > strtotime($endDate)) { // 如果开始日期大于结束日期,直接return 防止下面的循环出现死循环 return $dates; }