这东西给自己留着用。

经常会用到一些查询需要做全月统计,但有些时候的统计需要将未发生日期也显示出来,因此会需要一个固定的日期表,(T6的自定义查询估计也是需要的,至少以前是这样)

下面写两种方法来获取指定月份的日期表,第一种适用SQL 2000及以上版本的数据库,第二种只适用SQL 2005及以上版本数据库

函数一:

--支持SQL 2000

CREATE FUNCTION dbo.GetCalendar(@Begin NVARCHAR(30))

RETURNS @rst TABLE(dDate SMALLDATETIME,iDx int IDENTITY(1,1) NOT NULL)

AS

BEGIN

IF ISNULL(@Begin,'')='' RETURN

INSERT INTO @rst

SELECT TOP (DATEDIFF(DAY,@Begin,DATEADD(MONTH,1,@Begin)-1)+1) @Begin

FROM syscolumns

UPDATE @rst SET dDate=dDate+iDx-1

RETURN

END

GO

使用方法:

SELECT * FROM dbo.GetCalendar('2015-6-1')

函数二:

--需要ROW_NUMBER函数的支持,支持SQL 2005及以上版本数据库

CREATE FUNCTION dbo.GetCalendar2005(@Begin NVARCHAR(30))

RETURNS @rst TABLE(dDate SMALLDATETIME)

AS

BEGIN

INSERT INTO @rst

SELECT TOP (DATEDIFF(DAY,@Begin,DATEADD(MONTH,1,@Begin)-1)+1) CAST(@Begin AS SMALLDATETIME)-1+ROW_NUMBER() OVER(ORDER BY ID)

FROM

syscolumns

RETURN

END

GO

使用方法:

SELECT * FROM dbo. GetCalendar2005('2015-6-1')

最新文章

  1. CORS详解[译]
  2. java实现将汉字转为拼音
  3. C Primer Plus_第三章_数据和C_复习题与编程练习
  4. BZOJ3515 : EvenPaths
  5. [转]VS 2013 连接数据库报错 未能加载文件或程序集 Microsoft.SqlServer.Management.Sdk.Sfc
  6. RobotFrameWork接口报文测试-----(三)demo的加强版(数据驱动测试)
  7. crm 4 UserHasRole
  8. UVa 11090 Going in Cycle!!【Bellman_Ford】
  9. Objective-C中的@dynamic(转)
  10. 大型系统OA--技术
  11. PDF模板报表导出(Java+Acrobat+itext)
  12. 关于PHP导入项目的时候导入不了的情况
  13. 怎样批量把excel中已显示的科学计数法取消
  14. python-ansible api2.0 多进程执行不同的playbook
  15. ops-web运维平台-create.jsp-mootools下拉框-复选框
  16. [GIT] 更新.repo目录
  17. java读大文件最快性能【转】
  18. 初学习Qt的一些感悟
  19. 选择J2EE的SSH框架的理由
  20. 尚学堂java 参考答案 第八章

热门文章

  1. SOA面向服务的架构
  2. CentOS安装php及其扩展
  3. 教你写gulp plugin
  4. 慕课学习--OSI与TCP/IP网络协议
  5. 记H5单页遇到的几个ios兼容问题
  6. Centos 添加永久路由
  7. HDU 1281 - 棋盘游戏 - [二分图最大匹配]
  8. CCCC L2-020. 功夫传人 搜索 bfs && 精度+ 特判
  9. Time Profiler Instrument分析卡顿
  10. Redis 启动警告错误解决