• 大家五一快乐!

    • 出差回来了,这两天忙死,遇到整风运动+月底盘点

      还好明天就放假了,五一又可以玩三天,终于可以舒服地耍三天。。。

      公司的领导些五一要去农家乐开啥子战略研讨会,要开三天

      还好我不是啥领导,自己在家当宅男,陪老婆休息

      星期天是我二十七岁生日,岳父和姐夫要来玩,呵呵。。。

      我和老婆结婚满一年了,去年4月29日扯的结婚证,到今天整整一年了

      时间过的真快啊,已经结婚一年了。

      昨天给老婆买了一个小蛋糕,十多块钱,本来看中一个心形的水果蛋糕

      要200多元,我和老婆都是“过日子”型的人

      要花200确实太贵了,于是买了两个小蛋糕,小小地意思一下就行了。

      山不在高,有仙成名,水不在深,有龙则灵

      意思一下,记住这个日子就OK啦。

    • 出差感悟

    • 没出过远门,从98年到现在,基本是两点一线,老家——成都,

      读书的时候寒暑假回家一次,一年下来就也回家两次,

      工作以后,就只有春节才有时候回家了,

      所以最近这10年间基本上都待在成都,这次突然来到重庆,真的很不习惯,

      出来以后才深深明白“成都是一座来了就不想离开的城市”这句话,

      当一切成为习惯后,换到另外一个地方,就真的不习惯了,

      开始想家,想老婆,想成都的一切,

      还好出差不会太久,再过两天,这边事情搞完了就可以回去了,

      时间过的好快,转眼间结婚已经一年了,

      以前QQ上有不少扯淡的网友,时不时吹吹牛,扯扯淡,聊聊天,

      现在基本上很清静,很清静,

      除了工作需要外,就没其它聊天的了,

      可能是跟结婚有关的吧,无所谓了,能聊就聊,不聊就闪,

      清静也是一件美事,虽然我不喜欢清静!

      今天从春秋的QQ好友那里搞了一个捌零音乐的邀请码,

      真是无心插柳柳成阴,呵呵。

    • 重庆出差中,第一次的美好印象破灭

    • 昨天从出差到重庆,给重庆分公司升级管理系统软件,火车刚到重庆,出站后跟着大队人马走,看见那边有一个出口,跟着路标箭头走,我以为出口处肯定有很多出租车正在等我,结果恰恰相反,没看见一辆出租车,结果是个公交站,我靠,打出租车的地方隐藏的真深啊,给春秋(我同事又是我同学)打电话,原来出租汽车在地下室,我靠,这个直辖市真够牛,出租汽车打车的地方还埋在地下呢,等了半小时才打到车,第一印象就不好。

      公司在南岸区石桥铺(就是上次军区枪被抢的地方),晚上住在对面的凯凯宾馆,冲澡真舒服,坐了一下午火车,躲在床上睡着真舒服啊,刚刚睡下一会,就感觉身上有点痒,又有点咬的感觉,难道是有跳蚤?找了半天也没找到,还100/晚,我靠,环境好差啊。睡一晚,今天早上起来痒,身上还起了几个疙瘩,NND,服务好差。

      马路在施工,十字路口没有红绿灯,行人横穿马路,车子一个比一个跑得快,如果你眼晴不放精明点,过马路出车祸成功率绝对很高,如果有人想不过,选择在这里自杀肯定是个不错的选择。

      来到重庆,离开成都了,这才真正体会到“成都是一座来了就不想离开的城市”的真正含义, 出差重庆,给分公司安装新的系统软件(俺给总公司开发的),但是分公司的领导一个没见着,好像根本没一个人重视一样,一点意思没有,管我鸟事。

      不过重庆公司这边有一个好朋友,既是我的同学也是我的同事,有一年多没见了,看到老朋友心理非常高兴,就这些了,今天晚上还要通宵加班弄软件,听说7天连锁酒店还不错,2星级的,有99元的房间,可惜我今天预订的时候已经没了,订了109元的大床房,这个价格是会员价,只要在网上注册成会员就可以享受这个价格,如果去酒店现场订房间的话,要多几十块呢,明天晚上去7天酒店睡,呵呵。

      立即注册7天酒店会员

      立即注册7天酒店会员

    • SQL存储过程中使用循环操作

    • 使用SQL的Agent可以执行计划任务,把写好的SQL语句放在计划任务里,可以达到奇妙的效果,如定时备份数据,定时执行特定操作等等,当涉及循环操作很多条数据时,这里就要使用游标了,当然SQL中也有循环语句,如使用While。不过while的功能只能实现一般的操作,游标的功能更为强大些,可在一个指定的一个集合内循环操作数据,实现动态操作,那就更牛了,呵呵,以下资料供存档用。

      WHILE
      设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。

      语法
      WHILE Boolean_expression
            { sql_statement | statement_block }
            [ BREAK ]
            { sql_statement | statement_block }
            [ CONTINUE ]

      参数
      Boolean_expression

      返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。

      {sql_statement | statement_block}

      Transact-SQL 语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字 BEGIN 和 END。

      BREAK

      导致从最内层的 WHILE 循环中退出。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。

      CONTINUE

      使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后的任何语句。

      注释
      如果嵌套了两个或多个 WHILE 循环,内层的 BREAK 将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。

      示例

      declare @i int
      set @i=1
      while @i<30
      begin
      insert into test (userid) values(@i)
      set @i=@i+1
      end

      ------------------------------------------------------------

      while 条件
      begin
      执行操作
      set @i=@i+1
      end

      A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE
      在下例中,如果平均价格少于 $30,WHILE 循环就将价格加倍,然后选择最高价。如果最高价少于或等于 $50,WHILE 循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过 $50,然后退出 WHILE 循环并打印一条消息。

      USE pubs
      GO
      WHILE (SELECT AVG(price) FROM titles) < $30
      BEGIN
           UPDATE titles
              SET price = price * 2
           SELECT MAX(price) FROM titles
           IF (SELECT MAX(price) FROM titles) > $50
              BREAK
           ELSE
              CONTINUE
      END
      PRINT 'Too much for the market to bear'

      B. 在带有游标的过程中使用 WHILE
      以下的 WHILE 结构是名为 count_all_rows 过程中的一部分。下例中,该 WHILE 结构测试用于游标的函数 @@FETCH_STATUS 的返回值。因为 @@FETCH_STATUS 可能返回 –2、-1 或 0,所以,所有的情况都应进行测试。如果某一行在开始执行此存储过程以后从游标结果中删除,将跳过该行。成功提取 (0) 后将执行 BEGIN...END 循环内部的 SELECT 语句。

      单变量循环
      USE pubs
      DECLARE tnames_cursor CURSOR
      FOR
           SELECT TABLE_NAME
           FROM INFORMATION_SCHEMA.TABLES
      OPEN tnames_cursor
      DECLARE @tablename sysname
      --SET @tablename = 'authors'
      FETCH NEXT FROM tnames_cursor INTO @tablename
      WHILE (@@FETCH_STATUS <> -1)
      BEGIN
           IF (@@FETCH_STATUS <> -2)
           BEGIN    
              SELECT @tablename = RTRIM(@tablename)
              EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
                    + @tablename )
              PRINT ' '
          END
           FETCH NEXT FROM tnames_cursor INTO @tablename
      END
      CLOSE tnames_cursor
      DEALLOCATE tnames_cursor

      多变量循环

      CREATE      PROCEDURE my_FeeCount  AS
      declare  @到期时间      char(10)
      declare  @片区          char(20)
      declare  @缴费用户数 char(10)
      declare  @sql  char(2000)

      declare  cur_data  cursor  for
       select   convert(varchar(10),到期时间,120)  as 到期时间 ,片区,count(distinct main_id) as  缴费用户数
       from V_aipu_fee where 提交时间>=convert(varchar(10),getdate()-90,120) and 提交时间<convert(varchar(10),getdate()+1-90,120)
       and 收费类型='续费收费'
       Group   by   convert(varchar(10),到期时间,120),片区
       order   by   convert(varchar(10),到期时间,120)
      open  cur_data

      fetch  next  from  cur_data  into  @到期时间,@片区,@缴费用户数 
      while(@@fetch_status  =  0)
      begin
              set @sql='update '+RTRIM(@片区)+'实收='+RTRIM(@片区)+'实收+'+RTRIM(@缴费用户数)+' where 收费日期='''+RTRIM(@到期时间)+''''

       print @sql

       fetch  next  from  cur_data  into  @到期时间,@片区,@缴费用户数
      end

      close  cur_data
      deallocate  cur_data

    • 网赚秘籍:做一个快乐的淘宝客

    • 近几年阿里妈妈异军突起,成功占领网站广告自由交易第一把交椅,由于阿里妈妈与淘宝网系自家兄弟,当阿里妈妈与淘宝网业务接合后就产生了新型职业:淘宝客(原名叫淘客)。淘宝客所做的事就是推广淘宝产品,当交易成功后,赚取商品的佣金。当然淘宝客也有另外一层意思,就是淘宝卖家加入进来,发布自己的产品,让淘宝客来推广,提高自己产品的销量,这些卖家也是淘宝客。

      阿里妈妈再掀狂潮,加入淘宝客,马上就赚钱,如果你是网站的话,淘宝客就是非常轻松的赚钱职业,注册淘宝客后,把推广代码添加到网站上,只要你的网站有流量,只要有人访问你的网站,只要有人通过你的链接购买了商品,你就有佣金。当然除了这种效果计费外,还有按展示量计费的,还有按点击量计费的,只有展示,只要有点击,同样可以获得广告收入。

      零成本创业,在家也能赚钱!!!    如果没有网站也没关系,可以把推广链接或图片发布到其它论坛也可以,比如论坛签名,也是一个不错的推广方案哦。

      除了推广产品外,当你成为淘宝客后,同样可以介绍别人来做淘宝客,有什么好处呢?

      1.您只需要将这些广告代码通过博客、论坛、邮件、聊天工具发布,或者直接在您的网站上发布;
      2.别人通过广告注册成为淘宝客,您就可以获得该淘宝客接下来个月5%的佣金收入;
      3. 被推荐会员如果在7天内赚得1元佣金,您就可以获得额外的5元奖励
      4. 被推荐会员加入了淘宝客合作网站,并且产生了收入您就可以再获得额外的5元现金奖励。

      还在犹豫什么?赶快加入吧淘宝客吧!

    • Delphi用xls作为数据源,小工具解决大问题

    • 今天接到一个CASE,要求做几个分类汇总,可苦了财务室的魏大侠,以前只是要求对5个片区进行汇总统计,结果今天集团办的领导些要求对各个社区进行汇总统计,六七百个社区啊,全是手动汇总不弄死个人才怪,在了解详细的需求分析后(再一次领会到需求很重要),其实只要一条SQL语句就可以完成,最关键是有些数据要进行人工处理一下后才能方便统计,比如社区名为空的,某些片区不对的,都要手工调整后才能汇总。

      于是乎产生一个念头,把系统生成的XLS表格导出后,进行手工处理后,再用工具软件进行分析统计,我需要做的就是做一个分析工具软件,至于手工处理表格,就交给财务室的MM吧,也修改不到多少数据,几分钟就搞定了,关键是分析软件做好,可以节省很多时间,如果全手工的话,恐怕花两天时间整理几百个社区也有点困难哦,关键是全手工处理容易出错,呵呵。

      言归正传,看看Delphi如何使用XLS数据源,首先是用ADO连接XLS,其实该SQL连接字符串也可以用于其它语言,连接代码都是一样的。

      if OpenDialog1.Execute then
      begin
                mydatasrc:=OpenDialog1.FileName;
                try
                    con_xls.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+mydatasrc+';Extended Properties=Excel 8.0;Persist Security Info=False';
                    con_xls.Connected:=True;
                    Application.MessageBox('连接数据源成功!', '提示', MB_OK +
                      MB_ICONQUESTION);
                except
                    Application.MessageBox('连接数据源失败!', '提示', MB_OK +
                      MB_ICONSTOP);
                end; 
      end;

      将打开的XLS文件作为ADO连接的数据源,连接成功后就可以操作了,excle工作表中第一行会作为字段行,剩下的跟连接SQL SERVER操作一样的。

      不过XLS的工作表名要加上$符号,如工作表的名字是fee,那么SQL语句就中表名就应为[fee$],一定要加上[$],不然的话会报SQL语句出错,为了这个中括号,俺找了很多,最后才发现必须加上[],最后附上多字段汇总的SQL,以及汇总统计运算。

      procedure TForm1.btn_countClick(Sender: TObject);
      var sql:string;
      begin
      try
          if rb1.Checked then  //按片区汇总
          sql:='select 片区,count(main_id) as 收费户数,sum(缴费金额) as 总金额,sum(缴费周期) as 总周期,sum(优惠天数)'   +' as 总天数,总金额/(总周期+总天数/30) as ARP,(总周期+总天数/30)/收费户数 as 时长 from [fee$] group by 片区'
          else   //按社区名汇总
          sql:='select 社区名,count(main_id) as 收费户数,sum(缴费金额) as 总金额,sum(缴费周期) as 总周期,sum(优惠天数)'  +' as 总天数,总金额/(总周期+总天数/30) as ARP,(总周期+总天数/30)/收费户数 as 时长 from [fee$] group by 社区名';
          qry_fee.Close;
          qry_fee.SQL.Clear;
          qry_fee.SQL.Add(sql);
          qry_fee.Open;
          Sa_myDBGridAutoSize(SamoolGrid1,155,64,70,64,73,130,134,0,0,0);
      except
         ShowMessage('ERR');
      end;

      end;

    • 2009の生日快乐!

    • 又是一年生日到,哈哈。

      忘记去年那场灾难,今年公司组织3,4月过生的同事一起在塔子山野炊,本来原计划是塔子山烧烤的,结果后来改为在茶楼野炊了,说是野炊不过就是把买好的熟食拿出来吃摆了,总共人数大概有50多人吧,还是不错,难得一起吃东西,一起玩了,今天塔子山在举行花展,其实也没多少花,还5元门票呢,划不着。

      说说最近几件新鲜事吧,老鬼和V的博客已经半死不活了,哈哈,终于又耗死两个博客。

      博客右边侧栏放上了广告位,125X125的,当然下面赞助商也可以放广告位,250x250的,欢迎中小企业长期投放广告,为啥不欢迎大企业投放广告呢,因为压根大企业就看不俺博客,还是有自知之明的,哈哈。

      另外右边侧栏还放上了淘宝手机充值的链接,还有一个淘宝淘客网购的链接,方便自己的同时,也方便别人,手机充值,快速到帐,值得推荐一下。

      后记:这篇日志是昨天晚上5:30写的,正当我要发布的时候,网络断了,拨号成功后不能获取数据,草他中国电信奶奶的,10000号打N久才打通,上不了网发泄一下怨气,狗日的电信话务员还顶撞我,说故障要24小时内才能恢复,我说你们怎么不定个一个月才恢复,那个话务员MM居然说如果公司定一个月,我就告诉你一个月,如果公司定24小时,我就告诉你24小时,那个猪头这样顶撞客户,我投诉了0

      没有不对的客户,只有不好服务。

    • SQL日期和时间函数

    • 1.一个月第一天的
      Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

      2.本周的星期一
      Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

      3.一年的第一天
      Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

      4.季度的第一天
      Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

      5.当天的半夜
      Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

      6.上个月的最后一天
      Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

      7.去年的最后一天
      Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

      8.本月的最后一天
      Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

      9.本年的最后一天
      Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

      10.本月的第一个星期一
      select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

      返回当前日期和时间
      通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:

      Create TABLE site_log (
      username VARCHAR(40),
      useractivity VARCHAR(100),
      entrydate DATETIME DEFAULT GETDATE())

      转换日期和时间
      函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。
      要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:

      Select CONVERT(VARCHAR(30),GETDATE(),9)

      注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
      Nov 30 1997 3:29:55:170AM
      (1 row(s) affected)

      在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。下表显示了所有的格式。

      日期和时间的类型:
      类型值 标准 输出
      0 Default mon dd yyyy hh:miAM
      1 USA mm/dd/yy
      2 ANSI yy.mm.dd
      3 British/French dd/mm/yy
      4 German dd.mm.yy
      5 Italian dd-mm-yy
      6 - dd mon yy
      7 - mon dd,yy
      8 - hh:mi:ss
      9 Default + milliseconds--mon dd yyyy
      hh:mi:ss:mmmAM(or )
      10 USA mm-dd-yy
      11 JAPAN yy/mm/dd
      12 ISO yymmdd
      13 Europe Default + milliseconds--dd mon yyyy
      hh:mi:ss:mmm(24h)
      14 - hh:mi:ss:mmm(24h)

      类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).

      对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

      Select CONVERT(VARCHAR(30),GETDATE(),111)

      在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30

      抽取日期和时间
      在许多情况下,你也许只想得到日期和时间的一部分,而不是完整的日期和时间。为了抽取日期的特定部分,你可以使用函数DATEPART(),象这样:

      Select site_name ‘Site Name’,
      DATEPART(mm,site_entrydate) ‘Month Posted’ FROM site_directory

      函数DATEPART()的参数是两个变量。第一个变量指定要抽取日期的哪一部分;第二个变量是实际的数据。在这个例子中,函数DATEPART()抽取月份,因为mm代表月份。下面是这个Select 语句的输出结果:

      Site Name Month Posted
      ………………………………………………………………
      Yahoo 2
      Microsoft 5
      Magicw3 5
      (3 row(s) affected)

      Month Posted列显示了每个站点被查询的月份。函数DATEPART()的返回值是一个整数。你可以用这个函数抽取日期的各个不同部分,如下表所示。

      日期的各部分及其简写
      日期部分 简写 值
      year yy 1753--9999
      quarter qq 1--4
      month mm 1--12
      day of year dy 1--366
      day dd 1--31
      week wk 1--53
      weekday dw 1--7(Sunday--Saturday)
      hour hh 0--23
      minute mi 0--59
      second ss 0--59
      milisecond ms 0--999

      当你需要进行日期和时间的比较时,使用函数DATEPART()返回整数是有用的。但是,上例中的查询结果(2,5)不是十分易读。要以更易读的格式得到部分的日期和时间,你可以使用函数DATENAME(),如下例所示:

      Select site_name ‘Site Name’
      DATENAME(mm,site_entrydate) ‘Month Posted’
      FROM site_directory

      函数DATENAME()和函数DATEPART()接收同样的参数。但是,它的返回值是一个字符串,而不是一个整数。下面是上例该用DATENAME()得到的结果:

      Site Name Month Postec
      ………………………………………………………………….
      Yahoo February
      Microsoft June
      Magicw3 June
      (3 row(s) affected)

      你也可以用函数DATENAE()来抽取一个星期中的某一天。下面的这个例子同时抽取一周中的某一天和日期中的月份:

      Select site_name ‘Site Name’,
      DATENAME(dw,site_entrydate)+ ‘-’ + DATENAME(mm,site_entrydate)
      ‘Day and Month Posted’ FORM site_directory

      这个例子执行时,将返回如下的结果:

      Site Name Day and Month Posted
      ………………………………………………………………………
      Yahoo Friday - February
      Microsoft Tuesday - June
      Magicw3 Monday - June
      (3 row(s) affected)

      返回日期和时间范围
      当你分析表中的数据时,你也许希望取出某个特定时间的数据。你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。要取出这种类型的数据,你也许会试图使用这样的Select语句:

      Select * FROM weblog Where entrydate="12/25/20000"

      不要这样做。这个Select语句不会返回正确的记录――它将只返回日期和时间是12/25/2000 12:00:00:000AM的记录。换句话说,只有刚好在午夜零点输入的记录才被返回。

      问题是SQL Sever将用完整的日期和时间代替部分日期和时间。例如,当你输入一个日期,但不输入时间时,SQL Sever将加上缺省的时间“12:00:00:000AM”。当你输入一个时间,但不输入日期时,SQL Sever将加上缺省的日期“Jan 1 1900”。
      要返回正确的记录,你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如,下面的这个Select 语句将能返回正确的记录:

      Select * FROM weblog
      Where entrydate>=”12/25/2000” AND entrydate<”12/26/2000”

      这个语句可以完成任务,因为它选取的是表中的日期和时间大于等于12/25/2000 12:00:00:000AM并小于12/26/2000 12:00:00:000AM的记录。换句话说,它将正确地返回2000年圣诞节这一天输入的每一条记录。
      另一种方法是,你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符“%”,你可以匹配一个特定日期的所有时间。这里有一个例子:

      Select * FROM weblog Where entrydate LIKE ‘Dec 25 2000%’

      这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。
      使用这两种匹配日期和时间范围的函数,你可以选择某个月,某一天,某一年,某个小时,某一分钟,某一秒,甚至某一毫秒内输入的记录。但是,如果你使用LIKE 来匹配秒或毫秒,你首先需要使用函数CONVERT()把日期和时间转换为更精确的格式(参见前面“转换日期和时间”一节)。

      比较日期和时间
      最后,还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的Select语句将显示表中的每一条记录已经输入了多少个小时:

      Select entrydate ‘Time Entered’
      DATEDIFF(hh,entrydate,GETDATE()) ‘Hours Ago’ FROM weblog

      如果当前时间是2000年11月30号下午6点15分,则会返回如下的结果:

      Time Entered Hours Ago
      …………………………………………………..
      Dec 30 2000 4:09PM 2
      Dec 30 2000 4:13PM 2
      Dec 1 2000 4:09PM 698
      (3 row(s) affected)

      函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。
      函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。假如你要查询一个月前注册用户的记录,你可以使用如下的Select语句:

      Select username ‘User Name’,
      DATEADD(mm,1,firstvisit_date) ‘Registration Expires’
      FROM registration_table

      函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分,这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_date.假设当前日期是June 30,2000,这个语句将返回如下的内容:

      User Name Registration Expires
      ……………………………………………………………………………
      Bill Gates Jul 30 2000 4:09PM
      President Clinton Jul 30 2000 4:13PM
      William Shakespeare Jul 1 2000 4:09PM
      (3 row(s) affected)

      注意:
      使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。 

      函数 参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称


      参数 interval的设定值如下:

      缩 写(Sql Server) Access 和 ASP 说明 Year Yy yyyy 年 1753 ~ 9999 Quarter Qq q  季 1 ~ 4 Month Mm m  月1 ~ 12 Day of year Dy y 一年的日数,一年中的第几日 1-366 Day Dd d  日,1-31 Weekday Dw w 一周的日数,一周中的第几日 1-7 Week Wk ww 周,一年中的第几周 0 ~ 51 Hour Hh h  时0 ~ 23 Minute Mi n  分钟0 ~ 59 Second Ss s 秒 0 ~ 59 Millisecond Ms - 毫秒 0 ~ 999
    • 成都13日进3G时代

    • 3G终于来到成都市民身边了!昨日中国移动四川成都分公司宣布,从今日起,正式启用第三代移动通信(TD-SCDMA)服务。也就是说,即日起,成都市民可前往移动营业厅办理3G业务,使用3G手机。此举宣告成都从此进入3G时代,移动信息化水平迈入世界先进城市的行列。这也是今年1月7日,国家工信部发放3G牌照以来,成都第一家率先完成3G网络建设、提供3G体验、启用3G服务的通信运营商。

      中国移动的TD-SCDMA是第一个由我国提出并主导完成、具有自主知识产权的全球三大3G标准之一,与登月工程、大飞机制造项目一起,被国家列为自主创新三大工程。去年4月,TD-SCDMA先后在北京、上海等地试商用,并在北京奥运会上大放异彩。今年4月1日起,全国一些城市正式商用。今年2月中旬,成都TD-SCDMA开始建设,经过22天的昼夜奋战,在全国同批28个城市中率先完成基站建设,并第一个实现3G通话和启用3G服务,比原计划提前了2个多月,堪称“成都速度”。

      今日起,市民可到主城区中国移动9大主营业厅办理相关3G业务。据悉,移动首批提供的3G服务包括G3手机、随E行G3上网卡、G3笔记本、G3无线座机等无线终端设备,以及视频通话、多媒体彩铃、无线高速上网、无线音乐下载和手机电视等业务。而且,实行“不换号、不换卡、不登记”的“三不”原则。与此同时,移动3G专属号段188号段开始放号,今日开始接受预约登记。

    • 成都也现“阴阳天”?

    • 今天下午乌云密布,看起就想要下雨一样,但是东门龙泉方向却出现很亮的天空,一半是灰蒙蒙的,一半是很亮的,难道这就是传说中“阴阳天”?以前在网上看到过很多“阴阳天”的图片,但是这个有点假,但是也有点真,呵呵。有图有真相。

      090412a000.jpg

      090412a002.jpg

      090412a003.jpg

      090412a004.jpg

      090412a005.jpg

        “阴阳天”是一种少见但并不“诡异”的气候现象,我们平时坐飞机的时候,经常会看见大片成直线形状的云彩,不过平时在地面上比较少见罢了。而这种云彩如果在低空,就形成了我们所看到的“阴阳天”。至于快速移动并不稀奇,由于地球自转,所有的云彩都是移动的,只不过在地面上看这种直线型的大面积云彩移动十分显眼而已。

        造成“阴阳天”的云彩也是因为水汽凝结而成,这和一般的云彩没什么差别,只是碰巧形成了这种特异的形状而已。但是,云彩本来就变幻无穷,无论形成什么样的形状都不用奇怪。

Powered by Typecho)))   ICP:蜀ICP备05009250号