关于时间函数,问一个简单的问题!
时间:2011-11-07
来源:互联网
SQL code
declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2011-12-31' select rtrim(right(year(@time2-@time1),2)*1) +'年零'+rtrim(month(@time2-@time1))+'月' /* 0年零12月,这个对了! */ go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2012-12-31' select rtrim(right(year(@time2-@time1),2)*1) +'年零'+rtrim(month(@time2-@time1))+'月' /* 2年零1月,明显不对! */ go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2013-12-31' select rtrim(right(year(@time2-@time1),2)*1) +'年零'+rtrim(month(@time2-@time1))+'月' /* 3年零1月,也不对 */
作者: linjiangxian11 发布时间: 2011-11-07
declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2012-12-31' select rtrim(datediff(month,@time1,@rime2)/12) +'年零'+rtrim(datediff(month,@time1,@rime2)%12)+'月'
作者: ssp2009 发布时间: 2011-11-07
SELECT CONVERT(VARCHAR, FLOOR(DATEDIFF(mm, @time1, @time2) / 12)) + '年零' + CONVERT(VARCHAR, DATEDIFF(mm, @time1, @time2) % 12) + '月'
因为
RTRIM(MONTH(@time2- @time1)) 地方你没考虑年份
作者: OrchidCat 发布时间: 2011-11-07
SQL code
declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2011-12-31' select rtrim(datediff(month,@time1,@time2)/12) +'年零'+rtrim(datediff(month,@time1,@time2)%12)+'月' /* 0年零11月 */ go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2012-12-31' select rtrim(datediff(month,@time1,@time2)/12) +'年零'+rtrim(datediff(month,@time1,@time2)%12)+'月' /* 1年零11月 */ go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2013-12-31' select rtrim(datediff(month,@time1,@time2)/12) +'年零'+rtrim(datediff(month,@time1,@time2)%12)+'月' /* 2年零11月 */ go
作者: linjiangxian11 发布时间: 2011-11-07
下面是我的求时间间隔函数,当我改变@time2,出现了我无法解释的错误,具体如下:
SQL code
declare @time1 datetime,@time2 datetime
select @time1='2011-01-01',@time2='2011-12-31'
select rtrim(right(year(@time2-@time1),2)*1)
+'年零'+rtr……
?
12个月 <> 1年???
作者: OrchidCat 发布时间: 2011-11-07
作者: roy_88 发布时间: 2011-11-07
declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2011-12-31' select rtrim(right(year(@time2-@time1-1),2)*1) +'年零'+rtrim(month(@time2-@time1))+'月' go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2012-12-31' select rtrim(right(year(@time2-@time1-1),2)*1) +'年零'+rtrim(month(@time2-@time1-1))+'月' go declare @time1 datetime,@time2 datetime select @time1='2011-01-01',@time2='2013-12-31' select rtrim(right(year(@time2-@time1-1),2)*1) +'年零'+rtrim(month(@time2-@time1-1))+'月' /* ------------------------------ 0年零12月 (1 row(s) affected) ------------------------------ 1年零12月 (1 row(s) affected) ------------------------------ 2年零12月 (1 row(s) affected) */
作者: roy_88 发布时间: 2011-11-07
SQL默认日期为 select CAST(0 as datetime) /* 1900-01-01 00:00:00.000 */
作者: roy_88 发布时间: 2011-11-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28