SQL Server和XML的集成
来源:互联网 发布:c 窗口编程 编辑:程序博客网 时间:2024/05/18 03:13
问:我想利用SQL找出在任意一月中的周日的数量。请帮帮我。
答:以下是一个简单的技巧:
确定一个具体的月份,确定这个月的第一天
使用INTEGERS表生成一系列这个月第一天之后的日期覆盖这个月所有的日期
用日期函数确定这一生成日期是否就是周日
用count()获取周日的测试结果
为了创建integers表,用到下列命令:
createtableintegers
(iintegernotnullprimarykey);
insertintointegers(i)values(0);
insertintointegers(i)values(1);
insertintointegers(i)values(2);
insertintointegers(i)values(3);
insertintointegers(i)values(4);
insertintointegers(i)values(5);
insertintointegers(i)values(6);
insertintointegers(i)values(7);
insertintointegers(i)values(8);
insertintointegers(i)values(9);
现在我们假设你要测试的是2006年9月份,所以你确定的日期就是2006-09-01,然后用下面的查询生成这个月所有的日期。注意:每个数据库系统都会有不同的日期函数,所以一定要知道怎么使用你的数据库系统。这个例子就用到了MySQL语法。
set@day1=’2006-09-01’;
selectdate_add(@day1
,interval10*tens.i+units.iday)
asadate
fromintegersastens
cross
joinintegersasunits
wheredate_add(@day1
,interval10*tens.i+units.iday)
<date_add(@day1
,interval1month)
order
byadate
你会发现这里有一个ORDER BY子句,所以你可以充分相信该查询正确生成了这个月所有的日期。现在只需要将函数相加确定一个周六,并且计算的日期。现在只需要将函数相加确定一个周六,并进行计算:
set@day1=’2006-09-01’;
selectcount(
casewhendayofweek(
date_add(@day1
,interval10*tens.i+units.iday)
)=1
then1elsenullend) assundays
fromintegersastens
cross
joinintegersasunits
wheredate_add(@day1
,interval10*tens.i+units.iday)
<date_add(@day1
,interval1month)
Result:
sundays
4
非常简单,不是吗?
- SQL Server和XML的集成(1)
- SQL Server和XML的集成(2)
- SQL Server和XML的集成
- SQL Server 和 XML 的集成
- SQL Server和XML的集成
- SQL Server和XML的集成(1)
- SQL Server和XML的集成
- SQL Server和XML的集成
- SQL Server和XML的集成
- SQL Server数据库和XML标识语言的集成
- SQL Server 和 XML 支持
- SQL Server 2005的XML支持机制和安全机制
- 开启SQL SERVER 2005的CLR集成
- 使用SQL Server的CLR集成
- Windows 集成的身份验证连接SQL Server
- sql server T-Sql操作Xml 和 数据生成xml
- SQL Server XML 和 Web 应用体系结构
- SQL Server XML 和 Web 应用体系结构
- extjs extjs3 extjs4 htmleditor 引入自定义样式
- SQL Server和XML的集成
- mangos vc2008编译问题
- Linux 进程间通信管道
- Linux守护进程小样例
- SQL Server和XML的集成
- java设计模式-命令模式
- OK6410之开发环境的搭建
- epoll学习笔记
- C++:计算一个整数的数字之和
- 学习笔记——FileReader,FormData
- AWK简单教程
- 今天,很平常的一天,
- hadoop的负载均衡学习