求sql:根据输入年月,得到所在季度的所有月份

吃饱饱吖 2010-09-21 03:41:24
求sql:根据输入年月,得到所在季度的所有月份

比如输入2010年2月,得到2010年1月、2010年2月、2010年3月
输入2010年3月,得到2010年1月、2010年2月、2010年3月
输入2010年5月,得到2010年4月、2010年5月、2010年6月
……
...全文
681 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
王向飞 2010-09-21
  • 打赏
  • 举报
回复
建议楼主在你的数据库中常被一个日历表,保存各种年月日星期几等数据。
阿双2009 2010-09-21
  • 打赏
  • 举报
回复
来学习下..
SQLCenter 2010-09-21
  • 打赏
  • 举报
回复
declare @m int
set @m = 2

select number+1 from master..spt_values where type = 'P' and number/3=(@m-1)/3
SQLCenter 2010-09-21
  • 打赏
  • 举报
回复
declare @m int
set @m = 2

select number+1 from master..spt_values where type = 'P' and number/3=@m/3
crszf 2010-09-21
  • 打赏
  • 举报
回复
Declare @uDate DateTime
Select @uDate = '2010-05-01'
Select Case DatePart(Q,@uDate) When 1 Then Convert(VarChar(4),DatePart(YY,@uDate)) + '年1月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年2月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年3月'
When 2 Then Convert(VarChar(4),DatePart(YY,@uDate)) + '年4月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年5月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年6月'
When 3 Then Convert(VarChar(4),DatePart(YY,@uDate)) + '年7月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年8月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年9月'
Else Convert(VarChar(4),DatePart(YY,@uDate)) + '年10月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年11月、' + Convert(VarChar(4),DatePart(YY,@uDate)) + '年12月'
End Rst
dawugui 2010-09-21
  • 打赏
  • 举报
回复
declare @dt datetime

set @dt = '2010-09-21'

select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 1 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 2 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 3 as varchar),2) + '月'

/*

--------------------------------------
2010年07月
2010年08月
2010年09月

(所影响的行数为 3 行)
*/

set @dt = '2010-03-21'

select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 1 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 2 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 3 as varchar),2) + '月'
/*

--------------------------------------
2010年01月
2010年02月
2010年03月

(所影响的行数为 3 行)
*/

set @dt = '2010-04-21'

select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 1 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 2 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 3 as varchar),2) + '月'
/*

--------------------------------------
2010年04月
2010年05月
2010年06月

(所影响的行数为 3 行)
*/


set @dt = '2010-11-21'

select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 1 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 2 as varchar),2) + '月'
union
select datename(yy,@dt) + '年' + right('0'+cast(3 * (datepart(qq,@dt)-1) + 3 as varchar),2) + '月'
/*

--------------------------------------
2010年10月
2010年11月
2010年12月

(所影响的行数为 3 行)
*/

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧