日期:2014-05-17  浏览次数:20992 次

sql语句怎么实现按照一定规则把年月日时间转化成年月时间
比如 时间格式为2012-12-25,判断当日>25变成2013-01,当日期<=25,变成2012-12,怎么用sql语句实现呢,求各位帮忙下,

------解决方案--------------------
declare @dt datetime = '2013-02-26'
select convert(char(7),dateadd(month,1,@dt-25),120) --2013-03

set @dt = '2013-02-25'
select convert(char(7),dateadd(month,1,@dt-25),120) --2013-02

------解决方案--------------------
declare @dt datetime = '2013-02-26'
select convert(char(7), (case when day(@dt)>25 then dateadd(month,1,@dt) else @dt end), 120) --2013-03

set @dt = '2013-02-25'
select convert(char(7), (case when day(@dt)>25 then dateadd(month,1,@dt) else @dt end), 120) --2013-02

------解决方案--------------------
使用convert将日期转换称字符,然后使用substring函数截取进行比较,根据比较结果变量赋值。