sqlsql server time类型计算time

2011年 总版技术专家分年内排行榜第四2010年 总版技术专家分年内排行榜第九2009年 总版技术专家分年内排行榜第八
2011年10月 总版技术专家分月排行榜第一
2011年 总版技术专家分年内排行榜第四2010年 总版技术专家分年内排行榜第九2009年 总版技术专家分年内排行榜第八
2011年10月 总版技术专家分月排行榜第一
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。2011年8月 总版技术专家分月排行榜第三
2012年10月 荣获微软MVP称号2011年10月 荣获微软MVP称号
2011年8月 总版技术专家分月排行榜第三
2012年10月 荣获微软MVP称号2011年10月 荣获微软MVP称号
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。declare @time intselect @time = select @time = substring(cast(dateadd(Day,-1,convert(varchar,@time,112)) as varchar(20)),7,4) + substring(cast(dateadd(Day,-1,convert(varchar,@time,112)) as varchar(20)),1,2) + substring(cast(dateadd(Day,-1,convert(varchar,@time,112)) as varchar(20)),4,2)print @time--Year,quarter,Month,dayofyear ,Day,Week,Hour,minute,second,millisecond
@time可以是varchar,可以是int
日期数据格式的处理,两个示例:
CONVERT(varchar(16), 时间一, 20) 结果: 08:02/*时间一般为getdate()函数或数据表里的字段*/
CONVERT(varchar(10), 时间一, 23) 结果: /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/
语句及查询结果:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 9): 05 16 :46:827AMSelect CONVERT(varchar(100), GETDATE(), 10): 05-16-06Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16Select CONVERT(varchar(100), GETDATE(), 12): 060516Select CONVERT(varchar(100), GETDATE(), 13): 16 05 :46:937Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967Select CONVERT(varchar(100), GETDATE(), 20):
10:57:47Select CONVERT(varchar(100), GETDATE(), 21):
10:57:47.157Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSelect CONVERT(varchar(100), GETDATE(), 23): Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47Select CONVERT(varchar(100), GETDATE(), 25):
10:57:47.250Select CONVERT(varchar(100), GETDATE(), 100): 05 16 AMSelect CONVERT(varchar(100), GETDATE(), 101): 05/16/2006Select CONVERT(varchar(100), GETDATE(), 102): Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 109): 05 16 :49:437AMSelect CONVERT(varchar(100), GETDATE(), 110): 05-16-2006Select CONVERT(varchar(100), GETDATE(), 111): Select CONVERT(varchar(100), GETDATE(), 112): Select CONVERT(varchar(100), GETDATE(), 113): 16 05 :49:513Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547Select CONVERT(varchar(100), GETDATE(), 120):
10:57:49Select CONVERT(varchar(100), GETDATE(), 121):
10:57:49.700Select CONVERT(varchar(100), GETDATE(), 126): T10:57:49.827Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? :49:907AMSelect CONVERT(varchar(100), GETDATE(), 131): 18/04/:49:920AM说明:使用 CONVERT:CONVERT ( data_type [ ( length ) ] , expression , [style ] )参数expression是任何有效的 Microsoft® SQL Server™ 表达式。。 data_type目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。lengthnchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
Views(...) Comments()SQL时间计算,DATEADD()函数,该怎么解决 - Sql Server当前位置:& &&&SQL时间计算,DATEADD()函数,该怎么解决SQL时间计算,DATEADD()函数,该怎么解决&&网友分享于:&&浏览:0次SQL时间计算,DATEADD()函数DECLARE&@lastmonth1&DATE,&@lastmonth2&DATE,&@lastmonth3&DATE,&@starttime&DATE,&@endtime&DATE
SET&@starttime&=&''
SET&@lastmonth2&=&DATEADD(MONTH,&-1,&@starttime)
SET&@lastmonth3&=&DATEADD(DAY,&-1,&@starttime)
SET&@lastmonth1&=&DATEADD(MONTH,&-1,&@lastmonth3)
SET&@endtime&=&DATEADD(MONTH,&1,&@lastmonth3)
SELECT&@lastmonth1,&@lastmonth2,&@lastmonth3,&@starttime,&@endtime
这里说明一下,@lastmonth1&是上上月的最后一天,@lastmonth2&是上月的第一天,@lastmonth3是上月的最后一天,@starttime&是本月第一天,&@endtime&是本月最后一天。
如我上面给其余变量赋值之后呢,是有一点小问题的,如果本月是大月的话,那么,&和&@lastmonth1&是有错误的,因为少了一天,DATEADD()的月份加1是默认加30天的,怎么解决这个问题呢。------解决思路----------------------不是加30天,你想当然了,你计算有问题DECLARE&@lastmonth1&DATETIME,&@lastmonth2&DATETIME,&@lastmonth3&DATETIME,&@starttime&DATETIME,&@endtime&DATETIME
SET&@starttime&=&''
SET&@lastmonth2&=&DATEADD(MONTH,&-1,&@starttime)
SET&@lastmonth3&=&DATEADD(DAY,&-1,&@starttime)
SET&@lastmonth1&=&DATEADD(DAY,&-1,&@lastmonth2)
SET&@endtime&=&DATEADD(DAY,&-1,&DATEADD(MONTH,&1,&@starttime))
SELECT&@lastmonth1,&@lastmonth2,&@lastmonth3,&@starttime,&@endtime------解决思路----------------------DECLARE&@lastmonth1&DATEtime,&@lastmonth2&DATEtime,&@lastmonth3&DATEtime,&@starttime&DATEtime,&@endtime&DATEtime
SET&@starttime&=&''
--上月的第一天
SELECT&DATEADD(month,-1,DATEADD(dd,-DAY(@starttime)+1,@starttime))&AS&'上月的第一天'
--上月的最后一天
SELECT&DATEADD(ms,-3,DATEADD(mm,&DATEDIFF(mm,0,@starttime),0))AS&'上月的最后一天'
--本月的第一天
SELECT&DATEADD(dd,-DAY(@starttime)+1,@starttime)&AS&'本月的第一天'
--本月的最后一天
SELECT&DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,@starttime)+1,0))&AS&'本月的最后一天'
--是上上月的最后一天
SELECT&DATEADD(mm,-2,DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,@starttime)+1,0)))&AS&'是上上月的最后一天'
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有

我要回帖

更多关于 sql server 2008 time 的文章

 

随机推荐