·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
[Sql server]SQL中的时间计算语句 (1)
http://dev.21tx.com 2006年04月24日 IT 专家网 unknown

1 2 下一页

问:请问专家,如何计算一个表中的周起始和截止日期并写到表字段中? 我要从一个表向另一个表导入数据,并进行转换,用的是VB

  我现在有有一个表 主要字段有

time_id int
time_date datetime
year int
week_of_year int
day nvarhar
  想要转换成另外一张表
time_id int
time_date datetime
year int
week_of_year nvarchar
  原来的表内容是
--------------------
1 2003-07-09 2003 20 星期日
1 2003-07-10 2003 20 星期一
1 2003-07-11 2003 20 星期二

  想要变成

--------------------
1 07/09/2003 2003 第20周(7/9-7/17)
1 07/10/2003 2003 第20周(7/9-7/17)
1 07/11/2003 2003 第20周(7/9-7/17)
  请专家指点,这个语句应该怎么去写?

  答:

if object_id('tablename') is not null drop table tablename
select 1 as time_id, '2003-07-09' as time_date, 2003 as [year], 20 as week_of_year, '星期日' as [day]
into tablename
union select 1, '2003-07-10', 2003, 20, '星期一'
union select 1, '2003-07-11', 2003, 20, '星期二'
------------------------------------------------
select time_id, time_date, [year], '第' + cast(week_of_year as varchar(2)) + '周('
    + cast(month(week_begin) as varchar(2)) + '/' + cast(day(week_begin) as varchar(2)) + '-'
    + cast(month(week_end) as varchar(2)) + '/' + cast(day(week_end) as varchar(2)) as week_of_year
from (select *, dateadd(day, 1 - datepart(weekday, time_date), time_date) as week_begin,
      dateadd(day, 7 - datepart(weekday, time_date), time_date) as week_end from tablename) a
/*
time_id time_date    year   week_of_year
1       2003-07-09   2003   第20周(7/6-7/12)
1       2003-07-10   2003   第20周(7/6-7/12)
1       2003-07-11   2003   第20周(7/6-7/12)
*/
------------------------------------------------
drop table tablename


上一篇: [Sql server]微软升级:2005增加新功能
下一篇: [Sql server]安装2005中AdventureWork

1 2 下一页

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net