--SQL Server 2000
-----Calendar Table Geovin Du 涂聚文declare @start datetime,
@end datetimeset @start = '2006-01-01'
set @end = '2006-05-02'declare @no_of_Days int
set @no_of_days = datediff(dd,@start,@end) + 1
set rowcount @no_of_daysselect identity(int,0,1) as dy into #temp from sysobjects a, sysobjects bset rowcount 0select dateadd(dd,dy,@start) as [days] from #tempdrop table #temp
--
---SQL Server 2005
---Calendar Table
WITH CTE_DatesTable
AS
(SELECT CAST('20090601' as datetime) AS [date]UNION ALLSELECT DATEADD(dd, 1, [date])FROM CTE_DatesTableWHERE DATEADD(dd, 1, [date]) <= '20090630'
)
SELECT [date] FROM CTE_DatesTable
OPTION (MAXRECURSION 0);
GO---創造日曆函數 Geovin Du 涂聚文
CREATE FUNCTION [dbo].[DateTable]
(@FirstDate datetime,@LastDate datetime
)
RETURNS @datetable TABLE ([date] datetime
)
AS
BEGINSELECT @FirstDate = DATEADD(dd, 0, DATEDIFF(dd, 0, @FirstDate));   SELECT @LastDate = DATEADD(dd, 0, DATEDIFF(dd, 0, @LastDate));WITH CTE_DatesTableAS(SELECT @FirstDate AS [date]UNION ALLSELECT DATEADD(dd, 1, [date])FROM CTE_DatesTableWHERE DATEADD(dd, 1, [date]) <= @LastDate)INSERT INTO @datetable ([date])SELECT [date] FROM CTE_DatesTableOPTION (MAXRECURSION 0)RETURN
END
GO
---創造日曆函數
CREATE FUNCTION [dbo].[DatesTable]
(@FirstDate smalldatetime,@LastDate smalldatetime
)
RETURNS @datetable TABLE ([date] smalldatetime
)
AS
BEGINWITH CTE_DatesTableAS(SELECT @FirstDate AS [date]UNION ALLSELECT DATEADD(dd, 1, [date])FROM CTE_DatesTableWHERE DATEADD(dd, 1, [date]) <= @LastDate)INSERT INTO @datetable ([date])SELECT [date] FROM CTE_DatesTableOPTION (MAXRECURSION 0);RETURN;
END
GO
--測試
SELECT [date]
FROM [dbo].[DateTable](GETDATE(), DATEADD(dd,5,GETDATE()))
GO
SELECT [date]
FROM [dbo].[DatesTable](GETDATE(), DATEADD(dd,5,GETDATE()))
GO
---
create table SQLDatesTable
(id int identity(1,1) not null,[date] datetime not null
)
--
insert into SQLDatesTable ([date])
select [date] from [dbo].[DateTable]('20080101', '20081231')
-- Or
declare @i int = 0, @date datetime = '20090101'
while @i <= 100
begininsert into SQLDatesTable ([date]) values (dateadd(dd,@i,@date))set @i = @i + 1
endselect * from SQLDatesTable

转载于:https://www.cnblogs.com/geovindu/archive/2011/08/18/2144253.html

SQL Calendar Table相关推荐

  1. SQL CREATE TABLE 语句(转)

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  2. SQL ALTER TABLE 语句

    SQL ALTER TABLE 语句 ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中添加列,请使用下面 ...

  3. PL/SQL表---table()函数用法

    http://www.itpub.net/thread-617298-1-1.html PL/SQL表---table()函数用法: 利用table()函数,我们可以将PL/SQL返回的结果集代替ta ...

  4. mysql create很多table,SQL CREATE TABLE 语句

    原标题:SQL CREATE TABLE 语句 SQL CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. 表由行和列组成,每个表都必须有个表名. SQL CREAT ...

  5. 项目运行报错java.sql.SQLSyntaxErrorException: Table ‘sell.hibernate_sequence‘ doesn‘t exist

    1.问题: java.sql.SQLSyntaxErrorException: Table 'sell.hibernate_sequence' doesn't exist at com.mysql.c ...

  6. 【Linux数据库注意问题】java.sql.SQLSyntaxErrorException: Table ‘e.USER‘ doesn‘t exist

    你知道吗??Linux的mysql竟然区分大小写!!!!! 项目场景: 这是一个连接远程数据库的项目,远程数据库是建立在Linux上的mysql! 问题描述 运行项目出现以下问题: java.sql. ...

  7. Activiti流创建数据表的过程中报错 java.sql.SQLSyntaxErrorException: Table ‘activiti.act_ge_property‘ doesn‘t exis

    Activiti流创建数据表的过程中报错 java.sql.SQLSyntaxErrorException: Table 'activiti.act_ge_property' doesn't exis ...

  8. 使用mybatis-plus时容易出现的错误:java.sql.SQLSyntaxErrorException: Table ‘bookdata.book_data’ doesn’t exis异常处l

    使用mybatis-plus时容易出现的错误:java.sql.SQLSyntaxErrorException: Table 'bookdata.book_data' doesn't exist异常处 ...

  9. java.sql.SQLException: Table 'XXX' is marked as crashed and should be repaired异常修复

    服务器日志报java.sql.SQLException: Table 'XXX' is marked as crashed and should be repaired异常,下面给出修改方案,经试用可 ...

最新文章

  1. python3.7.2教程-python 3.7极速入门教程2 Hello与变量
  2. C++ 编写DLL文件给易语言调用
  3. chrome更新flash player失败
  4. Apache Flink Meetup,1.13 新版本发布 x 互娱场景实践分享的开发者盛筵!
  5. 苹果史诗级硬件漏洞 iOS 可永久越狱并且无法修复
  6. Common BeanUtils组件的使用(源码)
  7. linux中MySQL密码的恢复方法
  8. oracle数据库十六进制转字符串,Oracle中各种进制相互转换
  9. 2015-05-16
  10. qt qss设置字体大小_Qt编写输入法V2019终极版
  11. Oracle P6培训系列:04创建EPS结构
  12. Win32软件开发: 按键精灵 鼠标模拟器(VibraClick)
  13. Excel常用的功能
  14. Kaggle —— 泰坦尼克号
  15. 可靠性 可用性 可维护性
  16. 痛失PC霸主的联想,刘军将迎来艰难之战
  17. 分词器——ik——分词算法
  18. 解剖NetGuard
  19. 《算法笔记》第4章常用技巧
  20. Github 上火热的十个 Python 项目,从Debug工具到AI水军、量化交易系统。( 嗨学编程)

热门文章

  1. [MySQL] mysql地理位置服务geometry字段类型
  2. Git使用列表(四)
  3. rem和em学习笔记及CSS预处理
  4. struts 2中为什么抽象包不能包含action?
  5. HDOJ 1428 漫步校园
  6. java collections读书笔记(4) stack
  7. web service notes
  8. realarm Android系统编译后内核无法启动的解决方法
  9. apache站点优化--限速
  10. s4-8 虚拟局域网