SQL语句绘画日历
来源:互联网 发布:知乎国产电影排行 编辑:程序博客网 时间:2024/05/01 00:05
DECLARE @Year nvarchar(4)
DECLARE @YearMonth nvarchar(7) --月份
DECLARE @strTop nvarchar(200)
DECLARE @ForI INT,@ForYear INT,@MaxDay INT
DECLARE @RowX INT --行位置
DECLARE @strWeekDayList nvarchar(20)
DECLARE @strPrint nvarchar(300)
SET @Year='2010' --显示的年份
--设置日历上边的标题格式
SET @strTop='日'+char(9)+'一'+char(9)+'二'+char(9)+'三'++char(9)+'四'++char(9)+'五'++char(9)+'六'+char(13)+
'————————————————————————————————'
--设置星期列表
SET @strWeekDayList='日一二三四五六'
SET @ForYear=1
WHILE @ForYear<=12 --1月份至12月份
BEGIN
--取当月格式
SET @YearMonth=@Year+'-'+CAST(@ForYear AS nvarchar(2))
--取当月的最大日期
SET @MaxDay=DAY(DATEADD(Day,-1,DATEADD(Month,1,@YearMonth+'-01')))
--找出1号的开始位置
SET @RowX=CHARINDEX(RIGHT(DATENAME(WeekDay,@YearMonth+'-01'),1),@strWeekDayList)-1
SET @strPrint=''
SET @ForI=1
WHILE @ForI<=@RowX --构造1号的位置,并绘画空白处
BEGIN
SET @strPrint=@strPrint+CHAR(9)
SET @ForI=@ForI+1
END
SET @ForI=1
WHILE @ForI<=@MaxDay --构造2号到月底的位置,并绘画
BEGIN
SET @strPrint=@strPrint+CAST(@ForI AS nvarchar(2))+CHAR(9)
SET @RowX=@RowX+1
SET @ForI=@ForI+1
IF(@RowX%7=0) --满一个星期就换行
BEGIN
SET @RowX=0
SET @strPrint=@strPrint+CHAR(13)--这里的数字CHAR(13)有什么特殊的含义?
END
END
SET @ForYear=@ForYear+1
--打印输出一个月的结果
PRINT '—————————————————————————————————'
PRINT +CHAR(9)++CHAR(9)+' '+@YearMonth+CHAR(10)
PRINT @strTop
PRINT @strPrint+CHAR(10)
END
- SQL语句绘画日历
- SQL 绘画日历
- SQL 2005当中绘画日历
- SQL语句生成日历
- SQL语句实现日历
- Oracle SQL语句生成日历
- 生成日历的SQL语句
- 生成日历的SQL语句
- Oracle SQL语句生成日历 connect by
- 用SQL语句写某一月份的日历
- Oracle中利用SQL语句显示本月日历
- 用SQL语句写某一月份的日历
- 绘画
- 绘画
- 绘画
- [sql server] 日历做法
- [sql server] 日历做法
- SQL做日历
- linux下mount ntfs
- Linux系统下操作的常用快捷键
- 如何由.c或.cpp文件建立 与Qt相关的不同IDE平台的项目文件(.pro 和 .vcproj)和 中间文件夹 放置Generated Files
- 随笔
- 保护我们产品的知识产权
- SQL语句绘画日历
- tcp三次握手示意图
- symbian读书笔记--symbian操作系统概述部分
- 康奈尔大学的学生电子设计
- 使用Qt4本身的函数使窗口置顶
- WSAEventSelect模型 用法介绍
- Command模式
- 我的历程 人生就是如此 - 《数字中国》Coding Life 访谈录专栏回顾版
- 【我所认知的BIOS】->反汇编BIOS之Bootblock(9)