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

2016-02-19 13:53 6 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

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

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

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

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

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

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

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

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

set @curWk = datepart(wk,@tmpDay)

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

if @curWk@fstWk

begin

--print @tmpDay

break

end

set @i = @i+1

end

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

set @i=1

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

while(@i7)

begin

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

begin

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

set @i=@i+1

end

/**//*

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

**/

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

begin

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

/**//*

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

**/

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

begin

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

来源:http://www.tulaoshi.com/n/20160219/1605532.html

延伸阅读
标签: SQLServer
  表数据操作包括数据的插入、修改和删除。 一、插入数据 在向表中添加数据时应该注意两点:第一是用户权限,只有sysadmin角包成员、数据库和数据库对象所有者及其授权用户才有权限向表中添加数据;第二是数据格式,对于不同的数据类型,插入数据的格式也不一样,应严格遵守它们各自的格式要求。 Transact-SQL语言中用INSERT语句向表或...
标签: SQLServer
A. SQL Server has no built-in tools/facilities to do this. It also does not have the facility to run a stored-procedure on connection that could be written/used to do this. Therefore you have the following choices :- SQL Server没有这样的功能,也没有提供在连接时执行某一特定过程的功能。这里介绍几种实现的方法 1. Put ...
1.创建表 (1)用CreateTable命令创建表 语法: CreateTabletabl_name ({ }column_nameAscomputed_column_expression } }[,...n] ) [On{fiegroup|Default}] [Textimage_On{fiegroup|Default}] 例子: 打开cust数据库,创建一个表,该表包含了学生的有关信息,即有学号、姓名、性别、出生日...
标签: Web开发
Date(日期)对象可以使用Date()构造器来创建,在前面的教程中我们已经介绍了Date()构造器,这里就不重复叙述。它没有参数,返回的数值就是当前的日期。下面的表格显示了为日期构造器的有效输入: var today = new Date(); 返回当前的日期和时间 var newyear = new Date("December 31, 1998 23:59:59"); 输入的是表单的字符串 “月 日,...
-1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值, --显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。 select emp_no ,emp_name ,dept , isnull(convert(char(10),birthday,120),'日期不详') birthday from employee order by dept  --2、查找与喻自强在同一个单位...

经验教程

805

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部