[SQL]得到一年中所有为星期二的日期语句
来源:互联网 发布:巜算法统宗中 编辑:程序博客网 时间:2024/06/07 00:48
Method 1:
select dateadd(day,x,col),'星期二' from
(
select cast('2006-1-1' as datetime) as col
)a cross join
(
SELECT top 365 b8.i+b7.i + b6.i + b5.i + b4.i +b3.i +b2.i + b1.i + b0.i x
FROM(SELECT 0 i UNION ALL SELECT 1) b0
CROSS JOIN(SELECT 0 i UNION ALL SELECT 2) b1
CROSS JOIN(SELECT 0 i UNION ALL SELECT 4) b2
CROSS JOIN(SELECT 0 i UNION ALL SELECT 8) b3
CROSS JOIN(SELECT 0 i UNION ALL SELECT 16) b4
CROSS JOIN(SELECT 0 i UNION ALL SELECT 32) b5
CROSS JOIN(SELECT 0 i UNION ALL SELECT 64) b6
CROSS JOIN(SELECT 0 i UNION ALL SELECT 128) b7
CROSS JOIN(SELECT 0 i UNION ALL SELECT 256) b8
order by 1
)b
where datepart(dw,dateadd(day,x,col))=3
Method 2:
/*
功能: 计算在某一段时间内某周几(如星期一)的所有日期
设计:OK_008
时间:2006-10
*/
DECLARE @Date datetime
DECLARE @StartDate datetime
DECLARE @EndDate datetime
DECLARE @WeekDay int
DECLARE @i int
SET DATEFIRST 7 --设置每周的第一天
SET @StartDate='2006-01-01' --统计的开始日期
SET @EndDate='2006-12-31' --统计的结束日期
SET @WeekDay=2 --根据实际的@@DATEFIRST而定,一般默认是7,如 @StartDate='2006-01-01'时候, @WeekDay=3表示星期二
SET @i=DATEPART(weekday,@StartDate)
PRINT '每周的第1天设置@@DATEFIRST: '+CAST(@@DATEFIRST AS nvarchar(1))
PRINT '开始日期对应一周的第几天: '+CAST(@i AS nvarchar(1))
IF(@i<=@WeekDay AND @i<7)
SET @i=@WeekDay-@i
ELSE IF(@i<=@WeekDay AND @i=7)
SET @i=@i-@WeekDay
ELSE
SET @i=@@DATEFIRST-@i+@WeekDay
SET @Date=DATEADD(day,@i,@StartDate)
WHILE @Date<=@EndDate
BEGIN
IF(@StartDate<=@Date) PRINT CONVERT(nvarchar(10),@Date,121)
SET @Date=DATEADD(Week,1,@Date)
END
GO
/* ==============运行结果================*/
/*
每周的第1天设置@@DATEFIRST: 7
开始日期对应一周的第几天: 1
2006-01-02
2006-01-09
... ...
2006-12-18
2006-12-25
*/
- [SQL]得到一年中所有为星期二的日期语句
- 获取一年中按星期归类(星期一、星期二...)所有日期
- 用sql语句得到表中所有字段的名字
- 在数据库sql语句中得到当前的日期
- mysql中sql语句使日期增加一年
- SQL SERVER得到一个月所有的日期
- 用sql语句得到一个表的所有字段名
- 用sql语句得到一个表的所有字段名
- 验证当前日期是否为一年中最后一天,否则,默认返回当前日期前一年的最后一天日期
- 日期时间转换为日期的SQL语句
- 通过SQL语句来造出两个日期之间的所有月份
- jQuery中得到所有id为xxx开头的input
- sql 遍历所有表中 某项 值为已知数的查询语句
- sql 遍历所有表中 某项 值为已知数的查询语句
- sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
- SQL SERVER中得到年-月-日格式的日期
- sql中如何得到属于今天日期的纪录
- 根据年得到所有星期日的日期
- mplayer中的fourcc
- 深圳ADSL的VCI/VPI
- 如何用javascript控制上传文件的大小
- 水晶报表分页并自动插入空白行
- 函数练习题
- [SQL]得到一年中所有为星期二的日期语句
- MISTP/MSTP
- SQL Server安装文件挂起错误解决办法!
- 关于jBPM中scheduler的迷惑
- 高质量C++/C编程指南 -- 第11章 其它编程经验 参考文献
- 设计模式总结
- 从VBA宏代码到VB.NET代码
- 启发式搜索算法引论------A*算法理论与实践
- 教育的真谛