lvlon's profileLvlOn + sPhotosBlogLists Tools Help

Blog


    布拉格

    沉溺了一段时间。然后我又回来了。
    这次依然一样,踏上旅途。
    现在在布拉格去维也纳的大巴上。
    心里已然平静。
    看了红顶的房子,彩色的墙,童话的故事。
    下面我们来听金色大厅的美妙歌曲。
    等我,为你们献上这一篇篇旅歌。
     
     
    LvlOn至上

    疯了!

    我不要意大利游了
    也不要比利时之行了
    我真的啥都不要了
    只要不要让我回法国
    不要再问我为啥了
    我的手机被你们发短信发爆了
    只有打电话功能了
    我爱我的祖国,我爱我的家,我还爱那么多爱我的人
    完毕,谢谢
     

    延伸

     
     
    我壮烈的崩溃和牺牲了!
     
    伤!
    自找的!
    呸!我活该!
     
     
    LvlOn至上
     

    我嘴很欠,不说不爽!

    最近闷闷的。
    老苏说我总喜欢惹些事端我才高兴。
    是呀,我不喜欢太风平浪静的日子了。
    那我又来嘴欠一盘么。
     
    戏说某女。
    某女呢,我也不卖关子,就是老苏的前任。
    其实呢,这个也就是写给玫玫,NINI这两个八卦女看的。
    之后我们又可以激烈的讨论。
    最近血压太贫了,就是没跟你们八卦到。
    贫得我都晕了一回。哎!人生····
     
    回到正轨。
    话说要回到我发的那篇E-MAIL开始。
    此女最后回我的E-MAIL当中带了个疑问。
    因为老苏和他朋友的关系,他们都让我别再理此女了。
    我就一直没回复她的疑问,憋得我实在是不爽。
    此女问,我为什么那么介意她,让她觉得她跟老苏还有很大的可能。
    其实这个问题老苏也问过我为什么那么介意此女。
    老苏说他态度那么端正的,为啥我老拿那女人开刷。
    其实我也回答过老苏无数次了,就是因为我看她不爽。
    至于为什么不爽,其实原因有很多。
     
    其一,长得太JB丑了。说她是老苏的前任我都觉得丢脸。
    我没见过那么宽的国字脸,我可不可以很谦虚的说她脸是我的2倍大。
    没见过那么肥的身材还使劲露。
    缺点是拿来遮住的。虽然她现在瘦了很多。
    但少说也有个110斤吧。
    就110斤就算了,还穿紧身皮裤。老娘看了很想撞南墙。
    穿插一个笑话。
    此女找我帮忙,我找某男银帮我。
    次男问我,此女长得如何。
    我把此女校内头像照片传过去。
    此男马上跟我翻脸说不帮。
    (PS,此男绝对外貌协会会长)
     
    我继续嘴欠。。。。
     
    其二,真的让我不得不鄙视她。
    为啥呐?
    话说既然我们的身份是留学生,就应该好好读书啊。
    除非你家财万贯那又是另当别论。
    问题是此女又丑又求没钱又求不读书。
    每天端盘子倒茶的打工还HAPPY得很。
    我真的不是鄙视劳动人民。
    但是我真的是鄙视浪费自己机会的人。
    当然,她自己的人生么。
    但是我确实也没办法接受一个以端盘子倒茶为职业的人。
    ANYWAY,我还是鄙视了低级劳动人民。
     
    其三,那种很恶心的生活习惯让我很反感。
    老苏刚跟我在一起的时候,在我家住了几天,然后回去搬家。
    我站在此女房间门口5分钟。
    为啥?
    因为恶心的狗屎+她的内裤+烟头+不拉不拉不拉。。
    一堆东西在地上,床上,桌子上。
    天空中还有苍蝇在飞。
    老苏说,这就是他没收拾,此女一个人住的结果。
    我当场描绘出下水道美人鱼的画面
    (顺便说,下水道美人鱼是10大禁片之一)
     
    其四,那不能自理的自理能力和白痴脑袋让我想上去给她两巴掌。
    啥都不懂,啥都不知道,啥都需要打电话给老苏问一下。
    我RI你妈,啥都不晓得出屁的国啊。
    要不要姐姐告诉你咋个拨鸡蛋啊?
    没办法,别人看到弱者是同情。
    我看到弱者就是想扁。
    装锤子的纯情啊!!!
     
    哎哟··就嘴欠到这么··
    我一下爽多了。。。。。。
    有人拿来发泄真爽。
    以后没人给我发泄了咋办?
     
     
    LvlOn至上

    Deane

    好么,你说删我就删么!
     
     
     
    LvlOn至上
     

    写了封信给她
    曾被我和我朋友骂得体无完肤的她
    信里,一个中心,三个层次

    中心是,让她别来打扰我们生活了
    层次是,首先,其次,最后

    每句话,语气柔和,不带脏字
    其实我也有这么善良的时候

    希望她懂

    第一次遇到这样的事情
    又刚好所有巧合都在一起

    想起从前
    要不我就直接离开
    要不就先扁了再说
    可是这次我没办法
    因为深爱着一个如此善良的人
    我投降
    把我的脾气一收再收
    把忍耐无限扩大化

    仅此
    纪念一下,这是我最后一次对这件事上善良
    所有人作证

    请懂的舍弃 给子佳

    第一次面对一个问题,让我纠结了好几天没睡着觉。
    工程师,所有法国人挤破脑袋都想进入的学校。但不是顶尖的工程师学校。
    巴黎6大,法国最好得计算机本科学校。
    我同时拥有资格却苦泪满面
    何去何从,如何选择?
     
    10个法国朋友10个说,还用选?工程师。
    10个中国朋友8个说,请注意,你是女人。工程师?还是算了吧。
    爸爸说,你干嘛要那么辛苦?读13大就好了,玩你的。
    妈妈说,我啥都不懂,随便你。
    老苏说,你怎么选我都支持你,陪在你身边。
    我呢?至今没有答案。
     
    要舍弃的有很多。
    6大和工程师,都不是好读的。
    毕业率能有百分之五十我就能笑了。
    爱情,老苏,陪你的时间会少很多。
    友情,几乎连和朋友吃饭的时间都没有了。
    距离,每天40分钟的路程,来回就80分钟。
    汽车,再跑一年公里数不敢预算。可以报废了吧?
    金钱,有钱都没地花,因为没时间。
     
    我怀念高中单纯美好的日子
    和玫玫无敌没心没肺的日子
    我讨厌现在的选择
    扔硬币吧
    你说哪个就哪个
    这只是鸡头和凤尾的选择

    正常日志一篇---幸福得无话可说

    空白!因为无话可说!
    哈哈哈哈哈哈哈哈哈!
    巴黎要打折咯!!!!
                           

    附录,其他日期处理方法

    附录,其他日期处理方法

    1)去掉时分秒

    declare @ datetime

    set @ = getdate() --'2003-7-1 10:00:00'

    Select @,DATEADD(day, DATEDIFF(day,0,@), 0)

    2)显示星期几

    select datename(weekday,getdate())

    3)如何取得某个月的天数

    declare @m int

    set @m=2 --月份

    select datediff(day,'2003-'+cast(@m as

    varchar)+'-15' ,'2003-'+cast(@m+1 as

    varchar)+'-15')

    另外,取得本月天数

    select datediff(day,cast(month(GetDate()) as

    varchar)+'-'+cast(month(GetDate()) as varchar)+'-15'

    ,cast(month(GetDate()) as

    varchar)+'-'+cast(month(GetDate())+1 as

    varchar)+'-15')

    或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天

    Select Day(dateadd(ms,-3,DATEADD(mm,

    DATEDIFF(m,0,getdate())+1, 0)))

    4)判断是否闰年:

    Select case day(dateadd(mm, 2,

    dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()),

    0)))) when 28 then '平年' else '闰年' end

    或者

    select case

    datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))

    when 28 then '平年' else '闰年' end

    5)一个季度多少天

    declare @m tinyint,@time smalldatetime

    select @m=month(getdate())

    select @m=case when @m between 1 and 3 then 1

    when @m between 4 and 6

    then 4

    when @m between 7 and 9

    then 7

    else 10 end

    select

    @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

    select datediff(day,@time,dateadd(mm,3,@time))

    SQL WITH AS

     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些, 也有可能是在UNION ALL的不同部分,作为提供数据的部分。

      特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入一个全局临时表里。很多查询通过这种方法都可以提高速度。


       


    SQL ROW_NUMBER

    ROW_NUMBER()的用法

    返回结果集分区内行的序列号,每个分区的第一行从 1 开始。

    语法

    ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )

    参数

    <partition_by_clause>

        将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。有关 PARTITION BY 的语法,请参阅 OVER 子句 (Transact-SQL)。

    <order_by_clause>

        确定将 ROW_NUMBER 值分配给分区中的行的顺序。有关详细信息,请参阅 ORDER BY 子句 (Transact-SQL)。当在排名函数中使用 <order_by_clause> 时,不能用整数表示列。

    返回类型

    bigint
    备注

    ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。
    示例
    注意:
    OVER 子句中的 ORDER BY 将对 ROW_NUMBER 进行排序。如果将 ORDER BY 子句添加到以非 'Row Number' 的某列(或多列)作为排序依据的 SELECT 语句,则结果集将以外部的 ORDER BY 为依据进行排序。



    转贴SQL DATEADD DATEPART(2)

    目前为止的所有例子只是仅仅计算当前的时间和“1900-01-01”之间的时间间隔数量,然后把它加到“1900-01-01”的时间间隔上来计算出日期。假定你修改时间间隔的数量,或者使用不同的时间间隔来调用DATEADD函数,或者减去时间间隔而不是增加,那么通过这些小的调整你可以发现和多不同的日期。 
      
      这里有四个例子使用另外一个DATEADD函数来计算最后一天来分别替换DATEADD函数前后两个时间间隔上个月的最后一天
      
      这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。
      
      SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
      
      计算出来的日期的时间部分包含了一个Sql Server可以记录的一天的最后时刻(“23:59:59:997”)的时间。
      
      去年的最后一天
      
      连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。
      
      SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
      
      本月的最后一天
      
      现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本。
      
      SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
      
      本年的最后一天
      
      你现在应该掌握这个的做法,这是计算本年最后一天脚本
      
      SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。
      
      本月的第一个星期一
      
      好了,现在是最后一个例子。这里我要计算这个月的第一个星期一。这是计算的脚本。
      
      select DATEADD(wk, DATEDIFF(wk,0,
      dateadd(dd,6-datepart(day,getdate()),getdate())
      ), 0)
      
      在这个例子里,我使用了“本周的星期一”的脚本,并作了一点点修改。修改的部分是把原来脚本中“getdate()”部分替换成计算本月的第6天,在计算中用本月的第6天来替换当前日期使得计算可以获得这个月的第一个星期一。
      
      总结
      
      我希望这些例子可以在你用DATEADD和DATEDIFF函数计算日期时给你一点启发。通过使用这个计算日期的时间间隔的数学方法,我发现为了显示两个日期之间间隔的有用历法是有价值的。注意,这只是计算出这些日期的一种方法。要牢记,还有很多方法可以得到相同的计算结果。假如你有其他的方法,那很不错,要是你没有,我希望这些例子可以给你一些启发,当你要用DATEADD和DATEDIFF函数计算你程序可能要用到的日期时。
    ---------------------------------------------------------------
      附录,其他日期处理方法
      
      1)去掉时分秒
      declare @ datetime
      set @ = getdate() --';2003-7-1 10:00:00';
      SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)
      
      2)显示星期几
      select datename(weekday,getdate())
      
      3)如何取得某个月的天数
      declare @m int
      set @m=2 --月份
      select datediff(day,';2003-';+cast(@m as varchar)+';-15'; ,';2003-';+cast(@m+1 as varchar)+';-15';)
      另外,取得本月天数
      select datediff(day,cast(month(GetDate()) as varchar)+';-';+cast(month(GetDate()) as varchar)+';-15'; ,cast(month(GetDate()) as varchar)+';-';+cast(month(GetDate())+1 as varchar)+';-15';)
      或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天
      SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
      
      4)判断是否闰年:
      SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then ';平年'; else ';闰年'; end
      或者
      select case datediff(day,datename(year,getdate())+';-02-01';,dateadd(mm,1,datename(year,getdate())+';-02-01';))
      when 28 then ';平年'; else ';闰年'; end
      
      5)一个季度多少天
      declare @m tinyint,@time smalldatetime
      select @m=month(getdate())
      select @m=case when @m between 1 and 3 then 1
      when @m between 4 and 6 then 4
      when @m between 7 and 9 then 7
      else 10 end
      select @time=datename(year,getdate())+';-';+convert(varchar(10),@m)+';-01';
      select datediff(day,@time,dateadd(mm,3,@time))

    转贴SQL DATEADD DATEPART (1)

    LBHIDDEN[0]LBHIDDEN通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 
      在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。
      
      为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。
      
      使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。
      
      一个月的第一天
      
      第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。
      
      这是计算一个月第一天的SQL 脚本:
      SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
      
      我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计算当前日期和“1900-01-01 00:00:00.000”这个日期之间的月数。记住:时期和时间变量和毫秒一样是从“1900-01-01 00:00:00.000”开始计算的。这就是为什么你可以在DATEDIFF函数中指定第一个时间表达式为“0”。下一个函数是DATEADD,增加当前日期到“1900-01-01”的月数。通过增加预定义的日期“1900-01-01”和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是“00:00:00.000”。
      
      这个计算的技巧是先计算当前日期到“1900-01-01”的时间间隔数,然后把它加到“1900-01-01”上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也是用这个技巧从当前日期来产生不同的日期。
    本周的星期一
      
      这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。
      
      SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
      
      一年的第一天
      
      现在用年(yy)的时间间隔来显示这一年的第一天。
      
      SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
      
      季度的第一天
      
      假如你要计算这个季度的第一天,这个例子告诉你该如何做。
      
      SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
      
      当天的半夜
      
      曾经需要通过getdate()函数为了返回时间值截掉时间部分,就会考虑到当前日期是不是在半夜。假如这样,这个例子使用DATEDIFF和DATEADD函数来获得半夜的时间点。
      
      SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
      
      深入DATEDIFF和DATEADD函数计算
      
      你可以明白,通过使用简单的DATEDIFF和DATEADD函数计算,你可以发现很多不同的可能有意义的日期。

    sql

      sysaltfiles     主数据库     保存数据库的文件      
      syscharsets     主数据库     字符集与排序顺序      
      sysconfigures     主数据库     配置选项      
      syscurconfigs     主数据库     当前配置选项      
      sysdatabases     主数据库     服务器中的数据库      
      syslanguages     主数据库     语言      
      syslogins     主数据库     登陆帐号信息      
      sysoledbusers     主数据库     链接服务器登陆信息      
      sysprocesses     主数据库     进程      
      sysremotelogins     主数据库     远程登录帐号      
                   
      syscolumns     每个数据库     列      
      sysconstrains     每个数据库     限制      
      sysfilegroups     每个数据库     文件组      
      sysfiles     每个数据库     文件      
      sysforeignkeys     每个数据库     外部关键字      
      sysindexs     每个数据库     索引      
      sysmenbers     每个数据库     角色成员      
      sysobjects     每个数据库     所有数据库对象      
      syspermissions     每个数据库     权限      
      systypes     每个数据库     用户定义数据类型      
      sysusers     每个数据库     用户

    SQL

    SQL 修改列名

    EXECUTE   sp_rename   N'dbo.tableName.OldColName',   N'NewColName',   'COLUMN'




    SQL 关于OPENDATASOURCE

    通过excel直接把数据导入数据库
    EXCEL 2005

    SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

    'Data Source=NomFichier.xls;Extended Properties=EXCEL 8.0')...[Sheet1$] ;


    EXCEL 2007

    SELECT *

    FROM

    OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=NomFichier.xlsx;

    Extended Properties=''Excel 12.0''')...[sHEET1$]


    OR

    insert into testTable_1 ([name], [date], [money], [content])
    Select [姓名], [日期], [金额], [内容]
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="C:\Book1.xls";
    User ID=Admin;Password=;Extended properties=Excel 5.0
    ')...[Sheet1$]

    有时候因为SQL SERVEUR的安全限制,报错为:
    SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.


    修改方法:

    EXEC sp_configure 'show advanced options', 1;

    GO

    RECONFIGURE;

    GO

    EXEC sp_configure 'Ad Hoc Distributed Queries', 1;

    GO

    RECONFIGURE;

    GO


    OR


    启用AD Hoc Distributed Queries特性,执行Surface Area Configuration,选择Surface Area Configuration for features

    在弹出的窗口中选择Database Engine->Ad Hoc Remote Queries,然后勾选"Enable OPENROWSET and OPENDATASOURCE support",确认即可。



    SQL

    @@FETCH_STATUS:

    返回值              描述 
    0                FETCH 语句成功。 
    -1               FETCH 语句失败或此行不在结果集中。 
    -2               被提取的行不存在。 

    关于SQL直接读取硬盘文件

    SQL直接读取硬盘文件:

    declare @@sBulk as varchar(250)

    set @@sBulk = 'BULK INSERT temp FROM ''' + @@sNomFichier + ''' WITH (FIELDTERMINATOR = ''\t'', ROWTERMINATOR = ''\n'')'

    exec(@@sBulk)


    函数datetime:

    格式:YYYY-MM-DD hh:mm:ss.ms

    可用FUNCTION:

    日期部分 缩写
    year yy, yyyy
    quarter qq, q
    month mm, m
    dayofyear dy, y
    day dd, d
    week wk, ww
    weekday dw
    Hour hh
    minute mi, n
    second ss, s
    millisecond ms



    SQL+vb

    sql server 特殊字符
    例如在SQL中的特殊字符' 需要加一个'   ---------> ''

    Replace(Unstring, " ' ", " '' ")

    VB中,截取字符串长度

     Microsoft.VisualBasic.Left(Unstring, 3) 从左开始到第3个字符
    Mid(MyString,   1,   3) 从第几个到第几个
    Right(AnyString,   1)  从左右始到第1个字符

    SQL

    检查Table是否存在,若存在则删除

    if   exists   (select  * from  dbo.sysobjects  

                            where  id   =   object_id(N'[dbo].NomTable')

                            and   OBJECTPROPERTY(id,   N'IsUserTable')   =   1)

                            drop table NomTable
    检查View是否存在,若存在则删除

    if(Object_ID('Unvue')   is not  null)

    drop view Unvue