首页 新闻 会员 周边 捐助

sql server 字符转换

0
[已解决问题] 解决于 2017-05-17 16:32

有没有办法把'2016/02-2017/01'这个算出来等于几个月吗,

比如:

2016/02-2017/01:12个月

2016/04-2016/09:6个月

__初的主页 __初 | 初学一级 | 园豆:149
提问于:2017-05-15 16:03
< >
分享
最佳答案
0

这个可以考虑使用 DATEDIFF 计算时间差,例如: DATEDIFF(interval,date1,date2) 
interval 指定的方式(计算月份的话用MM-建议使用大写),返回date2 与date1两个日期之间的差值 date2-date1 

date1和date2 至少是要有 年,月,日 的完整时间格式才行

具体不知道您的数据的获取方式是啥样的,所以方便的话,请上代码

奖励园豆:5
武林村人 | 菜鸟二级 |园豆:211 | 2017-05-15 18:40

已将代码图片更新到问题上

__初 | 园豆:149 (初学一级) | 2017-05-16 14:05

@小屁孩的博客园: 

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要控制好就是了

希望能帮助你

武林村人 | 园豆:211 (菜鸟二级) | 2017-05-17 09:32

@武林村人: 恩恩,稍作修改结果就出来了,非常感谢!

 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
 

__初 | 园豆:149 (初学一级) | 2017-05-17 15:51
其他回答(2)
0

取当前时间:select getdate()
取前一个月的时间:SELECT DATEADD(MONTH,-1,GETDATE()) 月份减一个月
取年份:SELECT YEAR( DATEADD(MONTH,-1,GETDATE())),Year 取年份
取月份:SELECT MONTH( DATEADD(MONTH,-1,GETDATE())) ,month 取月份。

MRGan | 园豆:71 (初学一级) | 2017-05-16 17:13

谢谢你的回答,学习了一个函数DATEADD(datepart,number,date)

支持(0) 反对(0) __初 | 园豆:149 (初学一级) | 2017-05-17 18:32
0

select datediff(year, 开始日期,结束日期); --两日期间隔年
select datediff(quarter, 开始日期,结束日期); --两日期间隔季
select datediff(month, 开始日期,结束日期); --两日期间隔月
select datediff(day, 开始日期,结束日期); --两日期间隔天
select datediff(week, 开始日期,结束日期); --两日期间隔周
select datediff(hour, 开始日期,结束日期); --两日期间隔小时
select datediff(minute, 开始日期,结束日期); --两日期间隔分
select datediff(second, 开始日期,结束日期); --两日期间隔秒

这边列出了相关的格式,希望对你有用,希望有用的话点个赞

啦啦啦啦啦啦小情歌 | 园豆:222 (菜鸟二级) | 2017-12-12 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册