Herr Apfel的专栏

玉不琢,不成器;人不学,不知道。是故古之王者,建国君民,教学为先。

用户操作
[即时聊天] [发私信] [加为好友]
Herr ApfelID:herrapfel
108794次访问,排名820好友0人,关注者2
herrapfel的文章
原创 134 篇
翻译 0 篇
转载 15 篇
评论 51 篇
Herr Apfel的公告
庆祝个人 BLOG 开张
最近评论
s_bwang:我想知道怎么取得我要的日期,而不是取得当前的日期。
s_bwang:我想知道怎么取得我要的日期,而不是取得当前的日期。
dvdface:这种一堆API的方式还是嫌麻烦。最好的是能封装一下
qq77504166:哥们我用了你的方法,根本就不行啊??????
everyman1978:我一步一步的根据你的文章做,但执行下面的命令就不行了
jar umf MANIFEST.MF app.jar
说找不到app.jar,我把app.jar改成hello.jar后再运行,又说找不到MANIFEST.MF,我就在这个文件前加了一个目录(META-INF),
执行出现两个警告,并且后一句
java -jar hello.jar(执行)
文章分类
收藏
    相册
    My Photo
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 mysql 杂项收藏

    新一篇: 遍历HashTable | 旧一篇: java中文乱码的解决

    DATE_FORMAT(date,format)

    根据format字符串格式化date值。

    下列修饰符可以被用在format字符串中:

    %M 月名字(January……December)

    %W 星期名字(Sunday……Saturday)

    %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

    %Y 年, 数字, 4 位 %y 年, 数字, 2 位

    %a 缩写的星期名字(Sun……Sat)

    %d 月份中的天数, 数字(00……31)

    %e 月份中的天数, 数字(0……31)

    %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec)

    %j 一年中的天数(001……366)

    %H 小时(00……23) %k 小时(0……23)

    %h 小时(01……12)

    %I 小时(01……12) %l 小时(1……12)

    %i 分钟, 数字(00……59)

    %r 时间,12 小时(hh:mm:ss [AP]M)

    %T 时间,24 小时(hh:mm:ss)

    %S 秒(00……59)

    %s 秒(00……59)

    %p AM或PM

    %w 一个星期中的天数(0=Sunday ……6=Saturday )

    %U 星期(0……52), 这里星期天是星期的第一天

    %u 星期(0……52), 这里星期一是星期的第一天

    %% 一个文字“%”。 所有的其他字符不做解释被复制到结果中。

    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');

    -> 'Saturday October 1997'

    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');

    -> '22:23:00'

    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j');

     -> '4th 97 Sat 04 10 Oct 277'

    mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');

    -> '22 22 10 10:23:00 PM 22:23:00 00 6'

     

    例:select hour(datetime) as riqi,sum(number) as dianji from tb where date_format(datetime,'%Y-%m-%d')= '2006-03-31' group by hour(datetime);  

     

    SUBSTRING(str,pos,len)
     
    SUBSTRING(str FROM pos FOR len)
     
    MID(str,pos,len)
    从字符串str返回一个len个字符的子串,从位置pos开始。使用FROM的变种形式是ANSI SQL92语法。
    mysql> select SUBSTRING('Quadratically',5,6);
            -> 'ratica'
    

    该函数是多字节可靠的。

    SUBSTRING(str,pos)
     
    SUBSTRING(str FROM pos)
    从字符串str的起始位置pos返回一个子串。
    mysql> select SUBSTRING('Quadratically',5);
            -> 'ratically'
    mysql> select SUBSTRING('foobarbar' FROM 4);
            -> 'barbar'
    

    该函数是多字节可靠的。

    SUBSTRING_INDEX(str,delim,count)
    返回从字符串str的第count个出现分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
    mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
            -> 'www.mysql'
    mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
            -> 'mysql.com'
    

    该函数对多字节是可靠的。

    LTRIM(str)
    返回删除了其前置空格字符的字符串str
    mysql> select LTRIM('  barbar');
            -> 'barbar'
    
    RTRIM(str)
    返回删除了其拖后空格字符的字符串str
    mysql> select RTRIM('barbar   ');
            -> 'barbar'
    
    该函数对多字节是可靠的。  
    TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
    返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTHLEADINGTRAILING给出,BOTH被假定。如果remstr没被指定,空格被删除。
    mysql> select TRIM('  bar   ');
            -> 'bar'
    mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');
            -> 'barxxx'
    mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');
            -> 'bar'
    mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');
            -> 'barx'
    

    该函数对多字节是可靠的。

    SOUNDEX(str)
    返回str的一个同音字符串。听起来“大致相同”的2个字符串应该有相同的同音字符串。一个“标准”的同音字符串长是4个字符,但是SOUNDEX()函数返回一个任意长的字符串。你可以在结果上使用SUBSTRING()得到一个“标准”的 同音串。所有非数字字母字符在给定的字符串中被忽略。所有在A-Z之外的字符国际字母被当作元音。
    mysql> select SOUNDEX('Hello');
            -> 'H400'
    mysql> select SOUNDEX('Quadratically');
            -> 'Q36324'
     
    SPACE(N)
    返回由N个空格字符组成的一个字符串。
    mysql> select SPACE(6);
            -> '      '
     
    REPLACE(str,from_str,to_str)
    返回字符串str,其字符串from_str的所有出现由字符串to_str代替。
    mysql> select REPLACE('www.mysql.com', 'w', 'Ww');
            -> 'WwWwWw.mysql.com'
    

    该函数对多字节是可靠的。

    REPEAT(str,count)
    返回由重复countTimes次的字符串str组成的一个字符串。如果count <= 0,返回一个空字符串。如果strcountNULL,返回NULL
    mysql> select REPEAT('MySQL', 3);
            -> 'MySQLMySQLMySQL'
     
    REVERSE(str)
    返回颠倒字符顺序的字符串str
    mysql> select REVERSE('abc');
            -> 'cba'
    

    该函数对多字节可靠的。

    INSERT(str,pos,len,newstr)
    返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。
    mysql> select INSERT('Quadratic', 3, 4, 'What');
            -> 'QuWhattic'
    

    该函数对多字节是可靠的。

    ELT(N,str1,str2,str3,...)
    如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULLELT()FIELD()反运算。
    mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
            -> 'ej'
    mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
            -> 'foo'
    
    FIELD(str,str1,str2,str3,...)
    返回strstr1, str2, str3, ...清单的索引。如果str没找到,返回0FIELD()ELT()反运算。
    mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
            -> 2
    mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
            -> 0
    
    FIND_IN_SET(str,strlist)
    如果字符串str在由N子串组成的表strlist之中,返回一个1N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。
    mysql> SELECT FIND_IN_SET('b','a,b,c,d');
            -> 2
     
    MAKE_SET(bits,str1,str2,...)
    返回一个集合 (包含由“,”字符分隔的子串组成的一个字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0,str2对应位1,等等。在str1, str2, ...中的NULL串不添加到结果中。
    mysql> SELECT MAKE_SET(1,'a','b','c');
            -> 'a'
    mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
            -> 'hello,world'
    mysql> SELECT MAKE_SET(0,'a','b','c');
            -> ''
    
    EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
    返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,并且对于每个复位(reset)的位,你得到一个“off”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。
    mysql> select EXPORT_SET(5,'Y','N',',',4)
            -> Y,N,Y,N 
    
    LCASE(str)
     
    LOWER(str)
    返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。
    mysql> select LCASE('QUADRATICALLY');
            -> 'quadratically'
     
    UCASE(str)
     
    UPPER(str)
    返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。
    mysql> select UCASE('Hej');
            -> 'HEJ'
    

    该函数对多字节是可靠的。

    LOAD_FILE(file_name)
    读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权限。文件必须所有内容都是可读的并且小于max_allowed_packet。如果文件不存在或由于上面原因之一不能被读出,函数返回NULL
    mysql> UPDATE table_name
               SET blob_column=LOAD_FILE("/tmp/picture")
               WHERE id=1;
    
    

    MySQL必要时自动变换数字为字符串,并且反过来也如此:

    mysql> SELECT 1+"1";
            -> 2
    mysql> SELECT CONCAT(2,' test');
            -> '2 test'
    

    如果你想要明确地变换一个数字到一个字符串,把它作为参数传递到CONCAT()

    如果字符串函数提供一个二进制字符串作为参数,结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比较。

     

    IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 mysql> select IFNULL(1,0);         -> 1 mysql> select IFNULL(0,10);         -> 0 mysql> select IFNULL(1/0,10);         -> 10 mysql> select IFNULL(1/0,'yes');         -> 'yes'   IF(expr1,expr2,expr3) 如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。 mysql> select IF(1>2,2,3);         -> 3 mysql> select IF(1<2,'yes','no');         -> 'yes' mysql> select IF(strcmp('test','test1'),'yes','no');         -> 'no'

    expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

    mysql> select IF(0.1,1,0);         -> 0 mysql> select IF(0.1<>0,1,0);         -> 1

    在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

    CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END   CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。 mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;        -> "one" mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;        -> "true" mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END; -> NULL

     

    发表于 @ 2008年06月12日 11:15:00|评论(loading...)|收藏

    新一篇: 遍历HashTable | 旧一篇: java中文乱码的解决

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Herr Apfel