SQL Server 获取两个时间之间的月份、日期

1.获取两个时间之间的月份

1.1.编写表值函数

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[f_GetMonthRange] 
(
	@startTime datetime, 
	@endTime datetime
)
RETURNS @table TABLE  --输出的数据表
 (
    [DateMonth] varchar(7)
 )
AS
BEGIN
	WHILE @startTime <= @endTime
	BEGIN
        INSERT INTO @table
            SELECT  CONVERT(varchar(7),DATEADD(mm, DATEDIFF(mm, 0, @startTime), 0) , 120) AS DateMonth
                      
        SET @startTime = CONVERT(varchar(7), DATEADD(mm, 1, @startTime) , 120) + '-01'
	END
	RETURN;
END

1.2.测试效果

select * from F_GetMonthRange('2022-01-01 00:00:00','2022-09-01 00:00:00')

2.获取两个时间之间的日期

2.1.编写表值函数

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[f_GetDateRange](@startTime datetime, @endTime datetime)
RETURNS TABLE
AS
RETURN
(
SELECT convert(char(10), DATEADD(dd, number, @startTime),120) AS DateDay
FROM    master.dbo.spt_values  as spt
WHERE   type = 'p' AND number <= DATEDIFF(DAY, @startTime, @endTime)
)

2.2.测试效果

select * from F_GetDateRange('2022-01-01 00:00:00','2022-09-01 00:00:00')

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鱼>

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值