各位老师,帮忙看一下,谢谢

YZQSL 2017-05-03 05:23:14





使用dateadd(),在原有日期基础上,增加期限(几个月),形成新的到期时间,

dateadd(month,期限,时间),期限字段就是存了几个月,整形,但是这样写就不行,必须直接写具体数字才可以,如:dateadd(month,6,时间),如何解决啊?
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YZQSL 2017-05-03
  • 打赏
  • 举报
回复
dateadd(month,24,时间) as 到期时间1,这个月份间隔的值是整形常量,计算结果是没有问题,但是我的表中有个字段是“期限”,类型是整形,每条记录的期限是不同的啊,只能用变量啊,我直接用dateadd(month,期限,时间) as 到期时间,执行出来的结果就不对了,

看图片的第一行,原来日期是2017-4-13,加上“期限”,算出来怎么是2017-7-13,
二月十六 2017-05-03
  • 打赏
  • 举报
回复
那个“期限”不对吧。
直接那样写没问题
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([期限] int,[时间] Date)
Insert #T
select 24,'2017-04-13' union all
select 12,'2017-04-14'
Go
--测试数据结束
Select dateadd(month,期限,时间) from #T


卖水果的net 2017-05-03
  • 打赏
  • 举报
回复

-- 你那里什么提示信息
declare @n int
set @n = 10
select DATEADD(month,@n,getdate()) result 
go
create table test(n int)
go
insert into test values(1),(2),(3),(4)
go
select dateadd(month,n,getdate()) result from test 
go
drop table test 
go

result
-----------------------
2018-03-03 17:27:03.533

(1 行受影响)


(4 行受影响)
result
-----------------------
2017-06-03 17:27:03.550
2017-07-03 17:27:03.550
2017-08-03 17:27:03.550
2017-09-03 17:27:03.550

(4 行受影响)


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧