SQL Calendar Table
--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相关推荐
- SQL CREATE TABLE 语句(转)
CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...
- SQL ALTER TABLE 语句
SQL ALTER TABLE 语句 ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中添加列,请使用下面 ...
- PL/SQL表---table()函数用法
http://www.itpub.net/thread-617298-1-1.html PL/SQL表---table()函数用法: 利用table()函数,我们可以将PL/SQL返回的结果集代替ta ...
- mysql create很多table,SQL CREATE TABLE 语句
原标题:SQL CREATE TABLE 语句 SQL CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. 表由行和列组成,每个表都必须有个表名. SQL CREAT ...
- 项目运行报错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 ...
- 【Linux数据库注意问题】java.sql.SQLSyntaxErrorException: Table ‘e.USER‘ doesn‘t exist
你知道吗??Linux的mysql竟然区分大小写!!!!! 项目场景: 这是一个连接远程数据库的项目,远程数据库是建立在Linux上的mysql! 问题描述 运行项目出现以下问题: java.sql. ...
- Activiti流创建数据表的过程中报错 java.sql.SQLSyntaxErrorException: Table ‘activiti.act_ge_property‘ doesn‘t exis
Activiti流创建数据表的过程中报错 java.sql.SQLSyntaxErrorException: Table 'activiti.act_ge_property' doesn't exis ...
- 使用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异常处 ...
- 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异常,下面给出修改方案,经试用可 ...
最新文章
- python3.7.2教程-python 3.7极速入门教程2 Hello与变量
- C++ 编写DLL文件给易语言调用
- chrome更新flash player失败
- Apache Flink Meetup,1.13 新版本发布 x 互娱场景实践分享的开发者盛筵!
- 苹果史诗级硬件漏洞 iOS 可永久越狱并且无法修复
- Common BeanUtils组件的使用(源码)
- linux中MySQL密码的恢复方法
- oracle数据库十六进制转字符串,Oracle中各种进制相互转换
- 2015-05-16
- qt qss设置字体大小_Qt编写输入法V2019终极版
- Oracle P6培训系列:04创建EPS结构
- Win32软件开发: 按键精灵 鼠标模拟器(VibraClick)
- Excel常用的功能
- Kaggle —— 泰坦尼克号
- 可靠性 可用性 可维护性
- 痛失PC霸主的联想,刘军将迎来艰难之战
- 分词器——ik——分词算法
- 解剖NetGuard
- 《算法笔记》第4章常用技巧
- Github 上火热的十个 Python 项目,从Debug工具到AI水军、量化交易系统。( 嗨学编程)