SQL关于指定日期的操作实例

25度陡坡

25度陡坡

2016-02-19 13:53

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐SQL关于指定日期的操作实例,希望大家看完后也有个好心情,快快行动吧!

 将指定日期所在月份的所有日期按照周次输出
具体示例如下:

declare @i int-----------------------------计数器

declare @curWk int-------------------------指定日期在该年的周数

declare @fstWk int-------------------------每月一号在该年的周数

declare @fstDay nvarchar(10)---------------每月的第一天

declare @lstDay nvarchar(10)---------------每月的最后一天

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

declare @tmpDay smalldatetime--------------每周日的日期

declare @date smalldatetime----------------指定的日期

declare @tmpDay1 smalldatetime-------------每周六的日期

set @date = '2007-9-1'

select @fstDay=(cast(year(@date) as nvarchar(4))+'-'+ cast(month(@date) as nvarchar(2))+'-'+'1')

set @fstDay = Convert(nvarchar(10),cast(@fstDay as smalldatetime),120)

--print '本月第一天:'+@fstDay

set @fstWk = datepart(wk,@fstDay)

--print '本月第一周:'+str(@fstWk)

set @lstDay = Convert(nvarchar(10),dateadd(d,-1,dateadd(m,1,@fstDay)),120)

--print '本月最后一周:'+@lstDay

set @i=0

----找出跟上个月同一周的日期

while(@i8)

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

set @tmpDay = dateadd(dd,@i,@fstDay)

set @curWk = datepart(wk,@tmpDay)

if @curWk@fstWk

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

--print @tmpDay

break

end

set @i = @i+1

end

--print '本月第二周:'+convert(nvarchar(10),@tmpDay,120)

set @i=1

----找出这个月的日期

while(@i7)

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

if(@i=1)----------------如果是第一周,直接输出结果

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

print('第'+str(@i)+'周:'+@fstDay+'--------'+convert(nvarchar(10),DateAdd(d,-1,@tmpDay),120))

set @i=@i+1

end

/**//*

*如果周日的日期还在该月内则继续下面的循环

**/

if(datediff(d,@tmpDay,@lstDay)=0)

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

set @tmpDay1 = DateAdd(d,6,@tmpDay)------周六的日期就是周日的日期加六就可以

/**//*

*如果周六的日期超过该月最后一天,则直接输出周日跟该月最后一天,否则输出周日跟周六

**/

if(DateDiff(d,@lstDay,@tmpDay1)0)--超过该月最后一天,则直接输出周日跟该月最后一天

begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

print('第'+str(@i)+'周:'+Convert(nvarchar(10),@tmpDay,120)+'--------'+convert(nvarchar(10),@lstDay,120))

end

else--输出周日跟周六

print('第'+str(@i)+'周:'+Convert(nvarchar(10),@tmpDay,120)+'--------'+convert(nvarchar(10),@tmpDay1,120))

end

set @tmpDay=DateAdd(d,7,@tmpDay)----算出下周日的日期

if (datediff(d,@tmpDay,@lstDay)0)--如果周日的日期超过该月的最后一天,则退出循环

break

set @i=@i+1

end

展开更多 50%)
分享

猜你喜欢

SQL关于指定日期的操作实例

编程语言 网络编程
SQL关于指定日期的操作实例

日历-指定日期的新闻

Web开发
日历-指定日期的新闻

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle关于时间/日期的操作

编程语言 网络编程
Oracle关于时间/日期的操作

如何实现给定日期的若干天以后的日期

PHP
如何实现给定日期的若干天以后的日期

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)

PHP
如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)

计算2000年01月01日起到指定日的天数

PHP
计算2000年01月01日起到指定日的天数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JScript中正则表达式用法详解

JScript中正则表达式用法详解

一套实现Oracle异地数据自动备份方案

一套实现Oracle异地数据自动备份方案
下拉加载更多内容 ↓