这个可以考虑使用 DATEDIFF 计算时间差,例如: DATEDIFF(interval,date1,date2)
以interval 指定的方式(计算月份的话用MM-建议使用大写),返回date2 与date1两个日期之间的差值 date2-date1
date1和date2 至少是要有 年,月,日 的完整时间格式才行
具体不知道您的数据的获取方式是啥样的,所以方便的话,请上代码
已将代码图片更新到问题上
@小屁孩的博客园:
select top 10 * ,datediff(MM, left((select reimbursementphase from flowformcolumndataformkarb2016 where id='这边的id是唯一标志')+'/01',7), right((select bindid from flowformcolumndataformkarb2016 where id='这边的id是唯一标志')+'/01',7)) from flowformcolumndataformkarb2016 where id='这边的id是唯一标志'
这边的话,查询的字段名不知道没有写错,这个需要你的验证。
此查询只能是查询单条数据,如果需要多条数据就需要写在循环上,id要控制好就是了
希望能帮助你
@武林村人: 恩恩,稍作修改结果就出来了,非常感谢!
select top 10 ActivityCode 活动编码 ,BusinessCode 报销编码,reimbursementphase 时间段, left(reimbursementphase,7)+'/01' 开始月份, right(reimbursementphase,7)+'/01' 结束月份, abs(datediff(month,(left(reimbursementphase,7)+'/01'),(right(reimbursementphase,7)+'/01')))+1 月份差 from flowformcolumndataformkarb2016
取当前时间:select getdate()
取前一个月的时间:SELECT DATEADD(MONTH,-1,GETDATE()) 月份减一个月
取年份:SELECT YEAR( DATEADD(MONTH,-1,GETDATE())),Year 取年份
取月份:SELECT MONTH( DATEADD(MONTH,-1,GETDATE())) ,month 取月份。
谢谢你的回答,学习了一个函数DATEADD(datepart,number,date)
select datediff(year, 开始日期,结束日期); --两日期间隔年
select datediff(quarter, 开始日期,结束日期); --两日期间隔季
select datediff(month, 开始日期,结束日期); --两日期间隔月
select datediff(day, 开始日期,结束日期); --两日期间隔天
select datediff(week, 开始日期,结束日期); --两日期间隔周
select datediff(hour, 开始日期,结束日期); --两日期间隔小时
select datediff(minute, 开始日期,结束日期); --两日期间隔分
select datediff(second, 开始日期,结束日期); --两日期间隔秒
这边列出了相关的格式,希望对你有用,希望有用的话点个赞