﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-泰仔在线-随笔分类-Mysql 相关</title><link>http://www.blogjava.net/kxx129/category/9852.html</link><description>java学习,心情日记,缤纷时刻</description><language>zh-cn</language><lastBuildDate>Tue, 25 Mar 2008 13:15:54 GMT</lastBuildDate><pubDate>Tue, 25 Mar 2008 13:15:54 GMT</pubDate><ttl>60</ttl><item><title>Mysql 日期操作大全</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188178.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188178.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188178.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188178.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188178.html</trackback:ping><description><![CDATA[<div class="cnt" id="blog_text">对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。<br />
这里是一个使用日期函数的例子。下面的查询选择了所有记录，其date_col的值是在最后30天以内：<br />
<br />
mysql&gt; SELECT something FROM table<br />
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) &lt;= 30;<br />
<br />
DAYOFWEEK(date)<br />
<br />
返回日期date的星期索引(1=星期天，2=星期一, &#8230;&#8230;7=星期六)。这些索引值对应于ODBC标准。<br />
<br />
mysql&gt; select DAYOFWEEK('1998-02-03'/res/images/smilies/wink.gif;<br />
-&gt; 3<br />
<br />
WEEKDAY(date)<br />
<br />
返回date的星期索引(0=星期一，1=星期二, &#8230;&#8230;6= 星期天)。<br />
<br />
mysql&gt; select WEEKDAY('1997-10-04 22:23:00'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 5<br />
<br />
mysql&gt; select WEEKDAY('1997-11-05'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 2<br />
<br />
DAYOFMONTH(date)<br />
<br />
返回date的月份中日期，在1到31范围内。<br />
<br />
mysql&gt; select DAYOFMONTH('1998-02-03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 3<br />
<br />
DAYOFYEAR(date)<br />
<br />
返回date在一年中的日数, 在1到366范围内。<br />
<br />
mysql&gt; select DAYOFYEAR('1998-02-03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 34<br />
<br />
MONTH(date)<br />
<br />
返回date的月份，范围1到12。<br />
<br />
mysql&gt; select MONTH('1998-02-03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 2<br />
<br />
DAYNAME(date)<br />
<br />
返回date的星期名字。<br />
<br />
mysql&gt; select DAYNAME("1998-02-05"/res/images/smilies/wink.gif;<br />
<br />
-&gt; 'Thursday'<br />
<br />
MONTHNAME(date)<br />
<br />
返回date的月份名字。<br />
<br />
mysql&gt; select MONTHNAME("1998-02-05"/res/images/smilies/wink.gif;<br />
<br />
-&gt; 'February'<br />
<br />
QUARTER(date)<br />
<br />
返回date一年中的季度，范围1到4。<br />
<br />
mysql&gt; select QUARTER('98-04-01'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 2<br />
<br />
WEEK(date)<br />
<br />
WEEK(date,first)<br />
<br />
对于星期天是一周的第一天的地方，有一个单个参数，返回date的周数，范围在0到52。2个参数形式WEEK()允许 <br />
<br />
你指定星期是否开始于星期天或星期一。如果第二个参数是0，星期从星期天开始，如果第二个参数是1， <br />
<br />
从星期一开始。<br />
<br />
mysql&gt; select WEEK('1998-02-20'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 7<br />
<br />
mysql&gt; select WEEK('1998-02-20',0);<br />
<br />
-&gt; 7<br />
<br />
mysql&gt; select WEEK('1998-02-20',1);<br />
<br />
-&gt; 8<br />
<br />
YEAR(date)<br />
<br />
返回date的年份，范围在1000到9999。<br />
<br />
mysql&gt; select YEAR('98-02-03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 1998<br />
<br />
HOUR(time)<br />
<br />
返回time的小时，范围是0到23。<br />
<br />
mysql&gt; select HOUR('10:05:03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 10<br />
<br />
MINUTE(time)<br />
<br />
返回time的分钟，范围是0到59。<br />
<br />
mysql&gt; select MINUTE('98-02-03 10:05:03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 5<br />
<br />
SECOND(time)<br />
<br />
回来time的秒数，范围是0到59。<br />
<br />
mysql&gt; select SECOND('10:05:03'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 3<br />
<br />
PERIOD_ADD(P,N)<br />
<br />
增加N个月到阶段P（以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。<br />
<br />
mysql&gt; select PERIOD_ADD(9801,2);<br />
<br />
-&gt; 199803<br />
<br />
PERIOD_DIFF(P1,P2)<br />
<br />
返回在时期P1和P2之间月数，P1和P2应该以格式YYMM或YYYYMM。注意，时期参数P1和P2不是日期值。<br />
<br />
mysql&gt; select PERIOD_DIFF(9802,199703);<br />
<br />
-&gt; 11<br />
<br />
DATE_ADD(date,INTERVAL expr type)<br />
<br />
DATE_SUB(date,INTERVAL expr type)<br />
<br />
ADDDATE(date,INTERVAL expr type)<br />
<br />
SUBDATE(date,INTERVAL expr type)<br />
<br />
这些功能执行日期运算。对于MySQL 3.22，他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。 <br />
<br />
在MySQL 3.23中，你可以使用+和-而不是DATE_ADD()和DATE_SUB()。（见例子）date是一个指定开始日期的 <br />
<br />
DATETIME或DATE值，expr是指定加到开始日期或从开始日期减去的间隔值一个表达式，expr是一个字符串；它可以以 <br />
<br />
一个&#8220;-&#8221;开始表示负间隔。type是一个关键词，指明表达式应该如何被解释。EXTRACT(type FROM date)函数从日期 <br />
<br />
中返回&#8220;type&#8221;间隔。下表显示了type和expr参数怎样被关联： type值 含义 期望的expr格式<br />
<br />
SECOND 秒 SECONDS<br />
<br />
MINUTE 分钟 MINUTES<br />
<br />
HOUR 时间 HOURS<br />
<br />
DAY 天 DAYS<br />
<br />
MONTH 月 MONTHS<br />
<br />
YEAR 年 YEARS<br />
<br />
MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"<br />
<br />
HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"<br />
<br />
DAY_HOUR 天和小时 "DAYS HOURS"<br />
<br />
YEAR_MONTH 年和月 "YEARS-MONTHS"<br />
<br />
HOUR_SECOND 小时, 分钟， "HOURS:MINUTES:SECONDS"<br />
<br />
DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"<br />
<br />
DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"<br />
<br />
MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅 <br />
<br />
包含YEAR、MONTH和DAY部分(即，没有时间部分)，结果是一个DATE值。否则结果是一个DATETIME值。<br />
<br />
mysql&gt; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;<br />
<br />
-&gt; 1998-01-01 00:00:00<br />
<br />
mysql&gt; SELECT INTERVAL 1 DAY + "1997-12-31";<br />
<br />
-&gt; 1998-01-01<br />
<br />
mysql&gt; SELECT "1998-01-01" - INTERVAL 1 SECOND;<br />
<br />
-&gt; 1997-12-31 23:59:59<br />
<br />
mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",<br />
<br />
INTERVAL 1 SECOND);<br />
<br />
-&gt; 1998-01-01 00:00:00<br />
<br />
mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",<br />
<br />
INTERVAL 1 DAY);<br />
<br />
-&gt; 1998-01-01 23:59:59<br />
<br />
mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",<br />
<br />
INTERVAL "1:1" MINUTE_SECOND);<br />
<br />
-&gt; 1998-01-01 00:01:00<br />
<br />
mysql&gt; SELECT DATE_SUB("1998-01-01 00:00:00",<br />
<br />
INTERVAL "1 1:1:1" DAY_SECOND);<br />
<br />
-&gt; 1997-12-30 22:58:59<br />
<br />
mysql&gt; SELECT DATE_ADD("1998-01-01 00:00:00",<br />
<br />
INTERVAL "-1 10" DAY_HOUR);<br />
<br />
-&gt; 1997-12-30 14:00:00<br />
<br />
mysql&gt; SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);<br />
<br />
-&gt; 1997-12-02<br />
<br />
mysql&gt; SELECT EXTRACT(YEAR FROM "1999-07-02"/res/images/smilies/wink.gif;<br />
<br />
-&gt; 1999<br />
<br />
mysql&gt; SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03"/res/images/smilies/wink.gif;<br />
<br />
-&gt; 199907<br />
<br />
mysql&gt; SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03"/res/images/smilies/wink.gif;<br />
<br />
-&gt; 20102<br />
<br />
<br />
<br />
如果你指定太短的间隔值(不包括type关键词期望的间隔部分)，MySQL假设你省掉了间隔值的最左面部分。例如， <br />
<br />
如果你指定一个type是DAY_SECOND，值expr被希望有天、小时、分钟和秒部分。如果你象"1:10"这样指定值， <br />
<br />
MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说，"1:10" DAY_SECOND以它等价于"1:10" MINUTE_SECOND <br />
<br />
的方式解释，这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期， <br />
<br />
结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数，日子在新月用最大的天调整。<br />
<br />
mysql&gt; select DATE_ADD('1998-01-30', Interval 1 month);<br />
<br />
-&gt; 1998-02-28<br />
<br />
注意，从前面的例子中词INTERVAL和type关键词不是区分大小写的。<br />
<br />
TO_DAYS(date)<br />
<br />
给出一个日期date，返回一个天数(从0年的天数)。<br />
<br />
mysql&gt; select TO_DAYS(950501);<br />
<br />
-&gt; 728779<br />
<br />
mysql&gt; select TO_DAYS('1997-10-07'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 729669<br />
<br />
TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。<br />
<br />
FROM_DAYS(N)<br />
<br />
给出一个天数N，返回一个DATE值。<br />
<br />
mysql&gt; select FROM_DAYS(729669);<br />
<br />
-&gt; '1997-10-07'<br />
<br />
TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。<br />
<br />
DATE_FORMAT(date,format)<br />
<br />
根据format字符串格式化date值。下列修饰符可以被用在format字符串中： %M 月名字(January&#8230;&#8230;December)<br />
<br />
%W 星期名字(Sunday&#8230;&#8230;Saturday)<br />
<br />
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。）<br />
<br />
%Y 年, 数字, 4 位<br />
<br />
%y 年, 数字, 2 位<br />
<br />
%a 缩写的星期名字(Sun&#8230;&#8230;Sat)<br />
<br />
%d 月份中的天数, 数字(00&#8230;&#8230;31)<br />
<br />
%e 月份中的天数, 数字(0&#8230;&#8230;31)<br />
<br />
%m 月, 数字(01&#8230;&#8230;12)<br />
<br />
%c 月, 数字(1&#8230;&#8230;12)<br />
<br />
%b 缩写的月份名字(Jan&#8230;&#8230;Dec)<br />
<br />
%j 一年中的天数(001&#8230;&#8230;366)<br />
<br />
%H 小时(00&#8230;&#8230;23)<br />
<br />
%k 小时(0&#8230;&#8230;23)<br />
<br />
%h 小时(01&#8230;&#8230;12)<br />
<br />
%I 小时(01&#8230;&#8230;12)<br />
<br />
%l 小时(1&#8230;&#8230;12)<br />
<br />
%i 分钟, 数字(00&#8230;&#8230;59)<br />
<br />
%r 时间,12 小时(hh:mm:ss [AP]M)<br />
<br />
%T 时间,24 小时(hh:mm:ss)<br />
<br />
%S 秒(00&#8230;&#8230;59)<br />
<br />
%s 秒(00&#8230;&#8230;59)<br />
<br />
%p AM或PM<br />
<br />
%w 一个星期中的天数(0=Sunday &#8230;&#8230;6=Saturday ）<br />
<br />
%U 星期(0&#8230;&#8230;52), 这里星期天是星期的第一天<br />
<br />
%u 星期(0&#8230;&#8230;52), 这里星期一是星期的第一天<br />
<br />
%% 一个文字&#8220;%&#8221;。<br />
<br />
所有的其他字符不做解释被复制到结果中。<br />
<br />
mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 'Saturday October 1997'<br />
<br />
mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'/res/images/smilies/wink.gif;<br />
<br />
-&gt; '22:23:00'<br />
<br />
mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',<br />
<br />
'%D %y %a %d %m %b %j'/res/images/smilies/wink.gif;<br />
<br />
-&gt; '4th 97 Sat 04 10 Oct 277'<br />
<br />
mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',<br />
<br />
'%H %k %I %r %T %S %w'/res/images/smilies/wink.gif;<br />
<br />
-&gt; '22 22 10 10:23:00 PM 22:23:00 00 6'<br />
<br />
MySQL3.23中，在格式修饰符字符前需要%。在MySQL更早的版本中，%是可选的。<br />
<br />
TIME_FORMAT(time,format)<br />
<br />
这象上面的DATE_FORMAT()函数一样使用，但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。 <br />
<br />
其他修饰符产生一个NULL值或0。<br />
<br />
CURDATE()<br />
<br />
CURRENT_DATE<br />
<br />
以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值，取决于函数是在一个字符串还是数字上下文被使用。<br />
<br />
mysql&gt; select CURDATE();<br />
<br />
-&gt; '1997-12-15'<br />
<br />
mysql&gt; select CURDATE() + 0;<br />
<br />
-&gt; 19971215<br />
<br />
CURTIME()<br />
<br />
CURRENT_TIME<br />
<br />
以'HH:MM:SS'或HHMMSS格式返回当前时间值，取决于函数是在一个字符串还是在数字的上下文被使用。<br />
<br />
mysql&gt; select CURTIME();<br />
<br />
-&gt; '23:50:26'<br />
<br />
mysql&gt; select CURTIME() + 0;<br />
<br />
-&gt; 235026<br />
<br />
NOW()<br />
<br />
SYSDATE()<br />
<br />
CURRENT_TIMESTAMP<br />
<br />
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的日期和时间，取决于函数是在一个字符串还是在数字的 <br />
<br />
上下文被使用。<br />
<br />
mysql&gt; select NOW();<br />
<br />
-&gt; '1997-12-15 23:50:26'<br />
<br />
mysql&gt; select NOW() + 0;<br />
<br />
-&gt; 19971215235026<br />
<br />
UNIX_TIMESTAMP()<br />
<br />
UNIX_TIMESTAMP(date)<br />
<br />
如果没有参数调用，返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一 <br />
<br />
个date参数被调用，它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME <br />
<br />
字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。<br />
<br />
mysql&gt; select UNIX_TIMESTAMP();<br />
<br />
-&gt; 882226357<br />
<br />
mysql&gt; select UNIX_TIMESTAMP('1997-10-04 22:23:00'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 875996580<br />
<br />
当UNIX_TIMESTAMP被用于一个TIMESTAMP列，函数将直接接受值，没有隐含的&#8220;string-to-unix-timestamp&#8221;变换。<br />
<br />
FROM_UNIXTIME(unix_timestamp)<br />
<br />
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值，取决于函数是在一个字符串 <br />
<br />
还是或数字上下文中被使用。<br />
<br />
mysql&gt; select FROM_UNIXTIME(875996580);<br />
<br />
-&gt; '1997-10-04 22:23:00'<br />
<br />
mysql&gt; select FROM_UNIXTIME(875996580) + 0;<br />
<br />
-&gt; 19971004222300<br />
<br />
FROM_UNIXTIME(unix_timestamp,format)<br />
<br />
返回表示 Unix 时间标记的一个字符串，根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条 <br />
<br />
目同样的修饰符。<br />
<br />
mysql&gt; select FROM_UNIXTIME(UNIX_TIMESTAMP(),<br />
<br />
'%Y %D %M %h:%i:%s %x'/res/images/smilies/wink.gif;<br />
<br />
-&gt; '1997 23rd December 03:43:30 x'<br />
<br />
SEC_TO_TIME(seconds)<br />
<br />
返回seconds参数，变换成小时、分钟和秒，值以'HH:MM:SS'或HHMMSS格式化，取决于函数是在一个字符串还是在数字 <br />
<br />
上下文中被使用。<br />
<br />
mysql&gt; select SEC_TO_TIME(237/res/images/smilies/cool.gif;<br />
<br />
-&gt; '00:39:38'<br />
<br />
mysql&gt; select SEC_TO_TIME(237/res/images/smilies/cool.gif + 0;<br />
<br />
-&gt; 3938<br />
<br />
TIME_TO_SEC(time)<br />
<br />
返回time参数，转换成秒。<br />
<br />
mysql&gt; select TIME_TO_SEC('22:23:00'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 80580<br />
<br />
mysql&gt; select TIME_TO_SEC('00:39:38'/res/images/smilies/wink.gif;<br />
<br />
-&gt; 2378</div>

转自: <a href="http://hi.baidu.com/%DC%D6%D7%D3/blog/item/f778e3a9e2ed06f81f17a26a.html" alt="Mysql 日期操作大全">Mysql 日期操作大全</a><img src ="http://www.blogjava.net/kxx129/aggbug/188178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 11:24 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql常用查询</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188171.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188171.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188171.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188171.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188171.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188171.html</trackback:ping><description><![CDATA[一些例子使用数据库表&#8220;shop&#8221;，包含某个商人的每篇文章(物品号)的价格。假定每个商人的每篇文章有一个单独的固定价格，那么(物品，商人)是记录的主键。<br />
<br />
<font size="4"><span style="font-weight: bold">创建例子数据库表：</span></font><br />
<br />
CREATE TABLE shop (<br />
&nbsp;article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,<br />
&nbsp;dealer&nbsp; CHAR(20)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT ''&nbsp;&nbsp;&nbsp;&nbsp; NOT NULL,<br />
&nbsp;price&nbsp;&nbsp; DOUBLE(16,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT '0.00' NOT NULL,<br />
&nbsp;PRIMARY KEY(article, dealer));<br />
<br />
<span style="color: rgb(255,0,0)">INSERT INTO shop VALUES</span><br />
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69),<br />
(3,'D',1.25),(4,'D',19.95);<br />
<br />
好了，例子数据是这样的：<br />
<br />
<span style="color: rgb(255,0,0)">SELECT * FROM shop</span><br />
<br />
+---------+--------+-------+<br />
| article | dealer | price |<br />
+---------+--------+-------+<br />
|&nbsp;&nbsp;&nbsp; 0001 | A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 3.45 |<br />
|&nbsp;&nbsp;&nbsp; 0001 | B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 3.99 |<br />
|&nbsp;&nbsp;&nbsp; 0002 | A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 10.99 |<br />
|&nbsp;&nbsp;&nbsp; 0003 | B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1.45 |<br />
|&nbsp;&nbsp;&nbsp; 0003 | C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1.69 |<br />
|&nbsp;&nbsp;&nbsp; 0003 | D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1.25 |<br />
|&nbsp;&nbsp;&nbsp; 0004 | D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 19.95 |<br />
+---------+--------+-------+<br />
<br />
<span style="color: rgb(255,0,0)">8.3.1 列的最大值</span><br />
<br />
&#8220;最大的物品号是什么？&#8221;<br />
<br />
SELECT MAX(article) AS article FROM shop<br />
<br />
+---------+<br />
| article |<br />
+---------+<br />
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 |<br />
+---------+<br />
<br />
<span style="color: rgb(255,0,0)">8.3.2 拥有某个列的最大值的行</span><br />
<br />
&#8220;找出最贵的文章的编号、商人和价格&#8221;<br />
<br />
在ANSI-SQL中这很容易用一个子查询做到：<br />
<br />
SELECT article, dealer, price<br />
FROM&nbsp;&nbsp; shop<br />
WHERE&nbsp; price=(SELECT MAX(price) FROM shop)<br />
<br />
在MySQL中（还没有子查询)就用2步做到：<br />
<br />
&nbsp;&nbsp; 1. 用一个SELECT语句从表中得到最大值。<br />
&nbsp;&nbsp; 2. 使用该值编出实际的查询：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT article, dealer, price<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM&nbsp;&nbsp; shop<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE&nbsp; price=19.95<br />
<br />
另一个解决方案是按价格降序排序所有行并用MySQL特定LIMIT子句只得到的第一行：<br />
<br />
SELECT article, dealer, price<br />
FROM&nbsp;&nbsp; shop<br />
ORDER BY price DESC<br />
LIMIT 1<br />
<br />
注意:如果有多个最贵的文章( 例如每个19.95)，LIMIT解决方案仅仅显示他们之一！<br />
<span style="color: rgb(255,0,0)">8.3.3 列的最大值：按组：只有值</span><br />
<br />
&#8220;每篇文章的最高的价格是什么？&#8221;<br />
<br />
SELECT article, MAX(price) AS price<br />
FROM&nbsp;&nbsp; shop<br />
GROUP BY article<br />
<br />
+---------+-------+<br />
| article | price |<br />
+---------+-------+<br />
|&nbsp;&nbsp;&nbsp; 0001 |&nbsp; 3.99 |<br />
|&nbsp;&nbsp;&nbsp; 0002 | 10.99 |<br />
|&nbsp;&nbsp;&nbsp; 0003 |&nbsp; 1.69 |<br />
|&nbsp;&nbsp;&nbsp; 0004 | 19.95 |<br />
+---------+-------+<br />
<br />
<span style="color: rgb(255,0,0)">8.3.4 拥有某个字段的组间最大值的行</span><br />
<br />
&#8220;对每篇文章，找出有最贵的价格的交易者。&#8221;<br />
<br />
在ANSI SQL中，我可以用这样一个子查询做到：<br />
<br />
SELECT article, dealer, price<br />
FROM&nbsp;&nbsp; shop s1<br />
WHERE&nbsp; price=(SELECT MAX(s2.price)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM shop s2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE s1.article = s2.article)<br />
<br />
在MySQL中，最好是分几步做到：<br />
<br />
&nbsp;&nbsp; 1. 得到一个表(文章，maxprice)。见8.3.4 拥有某个域的组间最大值的行。<br />
&nbsp;&nbsp; 2. 对每篇文章，得到对应于存储最大价格的行。<br />
<br />
这可以很容易用一个临时表做到：<br />
<br />
CREATE TEMPORARY TABLE tmp (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; price&nbsp;&nbsp; DOUBLE(16,2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEFAULT '0.00' NOT NULL);<br />
<br />
LOCK TABLES article read;<br />
<br />
INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article;<br />
<br />
SELECT article, dealer, price FROM shop, tmp<br />
WHERE shop.article=tmp.articel AND shop.price=tmp.price;<br />
<br />
UNLOCK TABLES;<br />
<br />
DROP TABLE tmp;<br />
<br />
如果你不使用一个TEMPORARY表，你也必须锁定&#8220;tmp&#8221;表。<br />
<br />
&#8220;它能一个单个查询做到吗？&#8221;<br />
<br />
是的，但是只有使用我称之为&#8220;MAX-CONCAT诡计&#8221;的一个相当低效的诡计：<br />
<br />
SELECT article,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUBSTRING( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 7) AS dealer,<br />
&nbsp; 0.00+LEFT(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 6) AS price<br />
FROM&nbsp;&nbsp; shop<br />
GROUP BY article;<br />
<br />
+---------+--------+-------+<br />
| article | dealer | price |<br />
+---------+--------+-------+<br />
|&nbsp;&nbsp;&nbsp; 0001 | B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 3.99 |<br />
|&nbsp;&nbsp;&nbsp; 0002 | A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 10.99 |<br />
|&nbsp;&nbsp;&nbsp; 0003 | C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1.69 |<br />
|&nbsp;&nbsp;&nbsp; 0004 | D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 19.95 |<br />
+---------+--------+-------+<br />
<br />
最后例子当然能通过在客户程序中分割连结的列使它更有效一点。<br />
<span style="color: rgb(255,0,0)">8.3.5 使用外键</span><br />
<br />
不需要外键联结2个表。<br />
<br />
MySQL唯一不做的事情是CHECK以保证你使用的键确实在你正在引用表中存在，并且它不自动从有一个外键定义的表中删除行。如果你象平常那样使用你的键值，它将工作得很好！<br />
<br />
CREATE TABLE persons (<br />
&nbsp;&nbsp;&nbsp; id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, <br />
&nbsp;&nbsp;&nbsp; name CHAR(60) NOT NULL,<br />
&nbsp;&nbsp;&nbsp; PRIMARY KEY (id)<br />
);<br />
<br />
CREATE TABLE shirts (<br />
&nbsp;&nbsp;&nbsp; id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,<br />
&nbsp;&nbsp;&nbsp; style ENUM('t-shirt', 'polo', 'dress') NOT NULL,<br />
&nbsp;&nbsp;&nbsp; color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,<br />
&nbsp;&nbsp;&nbsp; owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,<br />
&nbsp;&nbsp;&nbsp; PRIMARY KEY (id)<br />
);<br />
<br />
INSERT INTO persons VALUES (NULL, 'Antonio Paz');<br />
<br />
INSERT INTO shirts VALUES<br />
(NULL, 'polo', 'blue', LAST_INSERT_ID()),<br />
(NULL, 'dress', 'white', LAST_INSERT_ID()),<br />
(NULL, 't-shirt', 'blue', LAST_INSERT_ID());<br />
<br />
INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');<br />
<br />
INSERT INTO shirts VALUES<br />
(NULL, 'dress', 'orange', LAST_INSERT_ID()),<br />
(NULL, 'polo', 'red', LAST_INSERT_ID()),<br />
(NULL, 'dress', 'blue', LAST_INSERT_ID()),<br />
(NULL, 't-shirt', 'white', LAST_INSERT_ID());<br />
<br />
SELECT * FROM persons;<br />
+----+---------------------+<br />
| id | name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+----+---------------------+<br />
|&nbsp; 1 | Antonio Paz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
|&nbsp; 2 | Lilliana Angelovska |<br />
+----+---------------------+<br />
<br />
SELECT * FROM shirts;<br />
+----+---------+--------+-------+<br />
| id | style&nbsp;&nbsp; | color&nbsp; | owner |<br />
+----+---------+--------+-------+<br />
|&nbsp; 1 | polo&nbsp;&nbsp;&nbsp; | blue&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |<br />
|&nbsp; 2 | dress&nbsp;&nbsp; | white&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |<br />
|&nbsp; 3 | t-shirt | blue&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |<br />
|&nbsp; 4 | dress&nbsp;&nbsp; | orange |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
|&nbsp; 5 | polo&nbsp;&nbsp;&nbsp; | red&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
|&nbsp; 6 | dress&nbsp;&nbsp; | blue&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
|&nbsp; 7 | t-shirt | white&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
+----+---------+--------+-------+<br />
<br />
SELECT s.* FROM persons p, shirts s<br />
&nbsp;WHERE p.name LIKE 'Lilliana%'<br />
&nbsp;&nbsp; AND s.owner = p.id<br />
&nbsp;&nbsp; AND s.color &amp;lt;&amp;gt; 'white';<br />
<br />
+----+-------+--------+-------+<br />
| id | style | color&nbsp; | owner |<br />
+----+-------+--------+-------+<br />
|&nbsp; 4 | dress | orange |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
|&nbsp; 5 | polo&nbsp; | red&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
|&nbsp; 6 | dress | blue&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2 |<br />
+----+-------+--------+-------+<br />
<br />
转自: <a href="http://blog.163.com/clicked@126/blog/static/3658459520081134645275" alt="mysql常用查询">mysql常用查询</a><img src ="http://www.blogjava.net/kxx129/aggbug/188171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 11:04 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql状态</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188170.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188170.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188170.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188170.html</trackback:ping><description><![CDATA[<p><br />
<code></code></p>
<table style="width: 448px; height: 164px" border="1" nosave="#101090">
    <tbody>
        <tr>
            <td><strong>提示符</strong></td>
            <td><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 含义</strong> </td>
        </tr>
        <tr>
            <td><code>mysql&gt;</code> </td>
            <td>准备好接受新命令</td>
        </tr>
        <tr>
            <td><code>-&gt;</code> </td>
            <td>等待多行命令的下一行</td>
        </tr>
        <tr>
            <td><code>'&gt;</code> </td>
            <td>等待下一行，收集以单引号(&#8220;'&#8221;)开始的字符串 </td>
        </tr>
        <tr>
            <td><code>"&gt;</code> </td>
            <td>等待下一行，收集以双引号(&#8220;"&#8221;)开始的字符串</td>
        </tr>
    </tbody>
</table>
\c&nbsp;&nbsp;&nbsp; 取消操作<br />
如果你想要知道一个<span style="font-weight: bold; color: rgb(255,0,0)">表的结构</span>，<span style="color: rgb(255,0,0)">DESCRIBE</span>；它显示有关一个表的每个列的信息：<br />
<br />
mysql&gt; DESCRIBE pet;<br />
<br />
+---------+-------------+------+-----+---------+-------+<br />
| Field&nbsp;&nbsp; | Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Null | Key | Default | Extra |<br />
+---------+-------------+------+-----+---------+-------+<br />
| name&nbsp;&nbsp;&nbsp; | varchar(20) | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
| owner&nbsp;&nbsp; | varchar(20) | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
| species | varchar(20) | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
| sex&nbsp;&nbsp;&nbsp;&nbsp; | char(1)&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
| birth&nbsp;&nbsp; | date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
| death&nbsp;&nbsp; | date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br />
+---------+-------------+------+-----+---------+-------+<br />
<span style="color: rgb(255,0,0)">当前选择了哪个数据库</span>，使用<span style="font-weight: bold; color: rgb(255,0,0)">DATABASE()</span>函数：<br />
<br />
mysql&gt; SELECT DATABASE();<br />
+------------+<br />
| DATABASE() |<br />
+------------+<br />
| menagerie&nbsp; |<br />
+------------+<br />
<br />
<span style="color: rgb(255,0,0)">如果你还没选择任何数据库，结果是空的。</span> <br />
<br />
<br />
<font style="color: rgb(255,0,0)" size="4"><span style="font-weight: bold">ALTER</span></font><br />
alter &nbsp; table &nbsp; &lt;表名&gt; &nbsp; <br />
&nbsp; [add &nbsp; column &nbsp; &lt;列名&gt;&lt;数据类型&gt;[完整性约束]] &nbsp; <br />
&nbsp; [drop &nbsp; column &nbsp; &lt;列名&gt;] &nbsp; <br />
&nbsp; <span style="font-weight: bold; color: rgb(153,51,102); text-decoration: underline">modify </span>&nbsp;&nbsp; &nbsp; &lt;列名&gt;&lt;数据类型&gt;[完整性约束]] &nbsp; /<span style="color: rgb(51,153,102)">/修改列数据类型完整性约束.<br />
</span>
<pre><span style="font-weight: bold; color: rgb(255,0,0); text-decoration: underline">EX：</span><span style="font-weight: bold; color: rgb(51,102,255)">ALTER TABLE t1 MODIFY b BIGINT NOT NULL;</span></pre>
<br />
&nbsp; <span style="font-weight: bold; color: rgb(255,153,0); text-decoration: underline">change</span> clolumn &lt;new column&gt;&nbsp; <span style="color: rgb(0,0,255)">//修改列名称<br />
</span>
<pre><span style="font-weight: bold; color: rgb(255,0,0)">EX:</span> <span style="font-weight: bold; color: rgb(0,0,255)">ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;</span></pre>
<br />
&nbsp; [add &nbsp; constraint &nbsp; &lt;表级完整性约束&gt;] &nbsp; <br />
&nbsp; [drop &nbsp; constraint &nbsp; &lt;表级完整性约束&gt;];<br />
<br />
<pre>ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]<br />
<br />
alter_specification:<br />
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]<br />
or    ADD INDEX [index_name] (index_col_name,...)<br />
or    ADD <span style="color: rgb(255,0,0)">PRIMARY KEY</span> (index_col_name,...)<br />
or    ADD UNIQUE [index_name] (index_col_name,...)<br />
or    <span style="font-weight: bold">ALTER</span> [COLUMN] col_name {<span style="color: rgb(255,102,0)">SET DEFAULT literal </span>| <span style="color: rgb(255,153,0)">DROP DEFAULT</span>}<br />
or    <span style="font-weight: bold">CHANGE</span> [COLUMN] <span style="text-decoration: underline">old_col_name</span> create_definition<br />
or    <span style="font-weight: bold">MODIFY</span> [COLUMN] create_definition<br />
or    DROP [COLUMN] col_name<br />
or    DROP PRIMARY KEY<br />
or    DROP INDEX index_name<br />
or    <span style="font-weight: bold; color: rgb(255,0,0)">RENAME [AS] new_tbl_name</span><br />
or    table_options</pre>
<pre>LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event<br />
装载记录<br />
</pre>
<br />
求天数：<br />
select to_days('2008-02-18')-to_days('1949-10-1');<br />
<br />
转自: <a href="http://blog.163.com/clicked@126/blog/static/365845952008113419470/" alt="Mysql状态">Mysql状态</a><img src ="http://www.blogjava.net/kxx129/aggbug/188170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 11:00 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql日期函数</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188168.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188168.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188168.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188168.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188168.html</trackback:ping><description><![CDATA[<p>这里是一个使用日期函数的例子。下面的查询选择了所有记录，其<span lang="EN-US">date_col</span>的值是在最后<span lang="EN-US">30</span>天以内：<span lang="EN-US">&nbsp; </span></p>
<p>　　<span lang="EN-US">mysql&gt; SELECT something FROM table&nbsp; <br />
</span>　　<span lang="EN-US">WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) &lt;= 30;&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">DAYOFWEEK(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回日期<span lang="EN-US">date</span>的星期索引<span lang="EN-US">(1=</span>星期天，<span lang="EN-US">2=</span>星期一<span lang="EN-US">, &#8230;&#8230;7=</span>星期六<span lang="EN-US">)</span>。这些索引值对应于<span lang="EN-US">ODBC</span>标准。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DAYOFWEEK('1998-02-03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 3&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">WEEKDAY(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>的星期索引<span lang="EN-US">(0=</span>星期一，<span lang="EN-US">1=</span>星期二<span lang="EN-US">, &#8230;&#8230;6= </span>星期天<span lang="EN-US">)</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select WEEKDAY('1997-10-04 22:23:00');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 5&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select WEEKDAY('1997-11-05');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 2&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">DAYOFMONTH(date)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>返回<span lang="EN-US">date</span>的月份中日期，在<span lang="EN-US">1</span>到<span lang="EN-US">31</span>范围内。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DAYOFMONTH('1998-02-03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 3&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">DAYOFYEAR(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>在一年中的日数<span lang="EN-US">, </span>在<span lang="EN-US">1</span>到<span lang="EN-US">366</span>范围内。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DAYOFYEAR('1998-02-03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 34&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">MONTH(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>的月份，范围<span lang="EN-US">1</span>到<span lang="EN-US">12</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select MONTH('1998-02-03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 2&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">DAYNAME(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>的星期名字。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DAYNAME("1998-02-05");&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 'Thursday'&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">MONTHNAME(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>的月份名字。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select MONTHNAME("1998-02-05");&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 'February'&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">QUARTER(date)&nbsp;</span></strong><span lang="EN-US"> <br />
</span>　　返回<span lang="EN-US">date</span>一年中的季度，范围<span lang="EN-US">1</span>到<span lang="EN-US">4</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select QUARTER('98-04-01');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 2&nbsp; </span></p>
<p>　　<span lang="EN-US">WEEK(date)&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<strong><span lang="EN-US" style="font-family: 宋体">WEEK(date,first)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　对于星期天是一周的第一天的地方，有一个单个参数，返回<span lang="EN-US">date</span>的周数，范围在<span lang="EN-US">0</span>到<span lang="EN-US">52</span>。<span lang="EN-US">2</span>个参数形式<span lang="EN-US">WEEK()</span>允许你指定星期是否开始于星期天或星期一。如果第二个参数是<span lang="EN-US">0</span>，星期从星期天开始，如果第二个参数是<span lang="EN-US">1</span>，从星期一开始。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select WEEK('1998-02-20');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 7&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select WEEK('1998-02-20',0);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 7&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select WEEK('1998-02-20',1);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 8&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">YEAR(date)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">date</span>的年份，范围在<span lang="EN-US">1000</span>到<span lang="EN-US">9999</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select YEAR('98-02-03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">HOUR(time)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>返回<span lang="EN-US">time</span>的小时，范围是<span lang="EN-US">0</span>到<span lang="EN-US">23</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select HOUR('10:05:03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 10&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">MINUTE(time)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>返回<span lang="EN-US">time</span>的分钟，范围是<span lang="EN-US">0</span>到<span lang="EN-US">59</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select MINUTE('98-02-03 10:05:03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 5&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">SECOND(time)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>回来<span lang="EN-US">time</span>的秒数，范围是<span lang="EN-US">0</span>到<span lang="EN-US">59</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select SECOND('10:05:03');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 3&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">PERIOD_ADD(P,N)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　增加<span lang="EN-US">N</span>个月到阶段<span lang="EN-US">P</span>（以格式<span lang="EN-US">YYMM</span>或<span lang="EN-US">YYYYMM)</span>。以格式<span lang="EN-US">YYYYMM</span>返回值。注意阶段参数<span lang="EN-US">P</span>不是日期值。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select PERIOD_ADD(9801,2);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 199803&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">PERIOD_DIFF(P1,P2)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回在时期<span lang="EN-US">P1</span>和<span lang="EN-US">P2</span>之间月数，<span lang="EN-US">P1</span>和<span lang="EN-US">P2</span>应该以格式<span lang="EN-US">YYMM</span>或<span lang="EN-US">YYYYMM</span>。注意，时期参数<span lang="EN-US">P1</span>和<span lang="EN-US">P2</span>不是日期值。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select PERIOD_DIFF(9802,199703);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 11&nbsp; </span></p>
<p>　　<span lang="EN-US">DATE_ADD(date,INTERVAL expr type)&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">DATE_SUB(date,INTERVAL expr type)&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">ADDDATE(date,INTERVAL expr type)&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">SUBDATE(date,INTERVAL expr type)&nbsp; <br />
</span>　　这些功能执行日期运算。对于<span lang="EN-US">MySQL 3.22</span>，他们是新的。<span lang="EN-US">ADDDATE()</span>和<span lang="EN-US">SUBDATE()</span>是<span lang="EN-US">DATE_ADD()</span>和<span lang="EN-US">DATE_SUB()</span>的同义词。<span lang="EN-US"> <br />
</span>　　在<span lang="EN-US">MySQL 3.23</span>中，你可以使用<span lang="EN-US">+</span>和<span lang="EN-US">-</span>而不是<span lang="EN-US">DATE_ADD()</span>和<span lang="EN-US">DATE_SUB()</span>。（见例子）<span lang="EN-US">date</span>是一个指定开始日期的<span lang="EN-US"> <br />
</span>　　<span lang="EN-US">DATETIME</span>或<span lang="EN-US">DATE</span>值，<span lang="EN-US">expr</span>是指定加到开始日期或从开始日期减去的间隔值一个表达式，<span lang="EN-US">expr</span>是一个字符串；它可以以<span lang="EN-US"> <br />
</span>　　一个<span lang="EN-US">&#8220;-&#8221;</span>开始表示负间隔。<span lang="EN-US">type</span>是一个关键词，指明表达式应该如何被解释。<span lang="EN-US">EXTRACT(type FROM date)</span>函数从日期<span lang="EN-US"> <br />
</span>　　中返回<span lang="EN-US">&#8220;type&#8221;</span>间隔。下表显示了<span lang="EN-US">type</span>和<span lang="EN-US">expr</span>参数怎样被关联：<span lang="EN-US"> type</span>值 含义 期望的<span lang="EN-US">expr</span>格式<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">SECOND </span>秒<span lang="EN-US"> SECONDS&nbsp; <br />
</span>　　<span lang="EN-US">MINUTE </span>分钟<span lang="EN-US"> MINUTES&nbsp; <br />
</span>　　<span lang="EN-US">HOUR </span>时间<span lang="EN-US"> HOURS&nbsp; <br />
</span>　　<span lang="EN-US">DAY </span>天<span lang="EN-US"> DAYS&nbsp; <br />
</span>　　<span lang="EN-US">MONTH </span>月<span lang="EN-US"> MONTHS&nbsp; <br />
</span>　　<span lang="EN-US">YEAR </span>年<span lang="EN-US"> YEARS&nbsp; <br />
</span>　　<span lang="EN-US">MINUTE_SECOND </span>分钟和秒<span lang="EN-US"> "MINUTES:SECONDS"&nbsp; <br />
</span>　　<span lang="EN-US">HOUR_MINUTE </span>小时和分钟<span lang="EN-US"> "HOURS:MINUTES"&nbsp; <br />
</span>　　<span lang="EN-US">DAY_HOUR </span>天和小时<span lang="EN-US"> "DAYS HOURS"&nbsp; <br />
</span>　　<span lang="EN-US">YEAR_MONTH </span>年和月<span lang="EN-US"> "YEARS-MONTHS"&nbsp; <br />
</span>　　<span lang="EN-US">HOUR_SECOND </span>小时<span lang="EN-US">, </span>分钟，<span lang="EN-US"> "HOURS:MINUTES:SECONDS"&nbsp; <br />
</span>　　<span lang="EN-US">DAY_MINUTE </span>天<span lang="EN-US">, </span>小时<span lang="EN-US">, </span>分钟<span lang="EN-US"> "DAYS HOURS:MINUTES"&nbsp; <br />
</span>　　<span lang="EN-US">DAY_SECOND </span>天<span lang="EN-US">, </span>小时<span lang="EN-US">, </span>分钟<span lang="EN-US">, </span>秒<span lang="EN-US"> "DAYS HOURS:MINUTES:SECONDS"&nbsp; </span></p>
<p>　　<span lang="EN-US">MySQL</span>在<span lang="EN-US">expr</span>格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果<span lang="EN-US">date</span>参数是一个<span lang="EN-US">DATE</span>值并且你的计算仅仅包含<span lang="EN-US">YEAR</span>、<span lang="EN-US">MONTH</span>和<span lang="EN-US">DAY</span>部分<span lang="EN-US">(</span>即，没有时间部分<span lang="EN-US">)</span>，结果是一个<span lang="EN-US">DATE</span>值。否则结果是一个<span lang="EN-US">DATETIME</span>值。<span lang="EN-US">&nbsp; </span></p>
<p>　　<span lang="EN-US">mysql&gt; SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-01-01 00:00:00&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT INTERVAL 1 DAY + "1997-12-31";&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-01-01&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT "1998-01-01" - INTERVAL 1 SECOND;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1997-12-31 23:59:59&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br />
</span>　　<span lang="EN-US">INTERVAL 1 SECOND);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-01-01 00:00:00&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br />
</span>　　<span lang="EN-US">INTERVAL 1 DAY);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-01-01 23:59:59&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_ADD("1997-12-31 23:59:59",&nbsp; <br />
</span>　　<span lang="EN-US">INTERVAL "1:1" MINUTE_SECOND);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-01-01 00:01:00&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_SUB("1998-01-01 00:00:00",&nbsp; <br />
</span>　　<span lang="EN-US">INTERVAL "1 1:1:1" DAY_SECOND);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1997-12-30 22:58:59&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_ADD("1998-01-01 00:00:00",&nbsp; <br />
</span>　　<span lang="EN-US">INTERVAL "-1 10" DAY_HOUR);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1997-12-30 14:00:00&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1997-12-02&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT EXTRACT(YEAR FROM "1999-07-02");&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1999&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 199907&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 20102&nbsp; </span></p>
<p>　　如果你指定太短的间隔值<span lang="EN-US">(</span>不包括<span lang="EN-US">type</span>关键词期望的间隔部分<span lang="EN-US">)</span>，<span lang="EN-US">MySQL</span>假设你省掉了间隔值的最左面部分。例如，如果你指定一个<span lang="EN-US">type</span>是<span lang="EN-US">DAY_SECOND</span>，值<span lang="EN-US">expr</span>被希望有天、小时、分钟和秒部分。如果你象<span lang="EN-US">"1:10"</span>这样指定值，<span lang="EN-US">MySQL</span>假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说，<span lang="EN-US">"1:10" DAY_SECOND</span>以它等价于<span lang="EN-US">"1:10" MINUTE_SECOND</span>的方式解释，这对那<span lang="EN-US">MySQL</span>解释<span lang="EN-US">TIME</span>值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期，结果是<span lang="EN-US">NULL</span>。如果你增加<span lang="EN-US">MONTH</span>、<span lang="EN-US">YEAR_MONTH</span>或<span lang="EN-US">YEAR</span>并且结果日期大于新月份的最大值天数，日子在新月用最大的天调整。<span lang="EN-US">&nbsp; </span></p>
<p>　　<span lang="EN-US">mysql&gt; select DATE_ADD('1998-01-30', Interval 1 month);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 1998-02-28&nbsp; </span></p>
<span style="font-size: 10.5pt; font-family: 宋体">　　注意，从前面的例子中词</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'">INTERVAL</span><span style="font-size: 10.5pt; font-family: 宋体">和</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'">type</span><span style="font-size: 10.5pt; font-family: 宋体">关键词不是区分大小写的。</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'">&nbsp; </span><br />
<p><strong><span lang="EN-US" style="font-family: 宋体">&nbsp;&nbsp;TO_DAYS(date)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>给出一个日期<span lang="EN-US">date</span>，返回一个天数<span lang="EN-US">(</span>从<span lang="EN-US">0</span>年的天数<span lang="EN-US">)</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select TO_DAYS(950501);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 728779&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select TO_DAYS('1997-10-07');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 729669&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">TO_DAYS()</span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>不打算用于使用格列高里历<span lang="EN-US">(1582)</span>出现前的值。<span lang="EN-US">&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">FROM_DAYS(N)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>给出一个天数<span lang="EN-US">N</span>，返回一个<span lang="EN-US">DATE</span>值。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select FROM_DAYS(729669);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '1997-10-07'&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">DATE_FORMAT(date,format)&nbsp; </span></strong><span lang="EN-US"><br />
</span>　　根据<span lang="EN-US">format</span>字符串格式化<span lang="EN-US">date</span>值。下列修饰符可以被用在<span lang="EN-US">format</span>字符串中：<span lang="EN-US"> %M </span>月名字<span lang="EN-US">(January&#8230;&#8230;December)&nbsp; <br />
</span>　　<span lang="EN-US">%W </span>星期名字<span lang="EN-US">(<a href="http://product.it168.com/list/b/04020232_1.shtml" target="_blank"><span style="font-family: ˎ̥">Sun</span></a>day&#8230;&#8230;Saturday)&nbsp; <br />
</span>　　<span lang="EN-US">%D </span>有英语前缀的月份的日期<span lang="EN-US">(1st, 2nd, 3rd, </span>等等。）<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%Y </span>年<span lang="EN-US">, </span>数字<span lang="EN-US">, 4 </span>位<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%y </span>年<span lang="EN-US">, </span>数字<span lang="EN-US">, 2 </span>位<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%a </span>缩写的星期名字<span lang="EN-US">(Sun&#8230;&#8230;Sat)&nbsp; <br />
</span>　　<span lang="EN-US">%d </span>月份中的天数<span lang="EN-US">, </span>数字<span lang="EN-US">(00&#8230;&#8230;31)&nbsp; <br />
</span>　　<span lang="EN-US">%e </span>月份中的天数<span lang="EN-US">, </span>数字<span lang="EN-US">(0&#8230;&#8230;31)&nbsp; <br />
</span>　　<span lang="EN-US">%m </span>月<span lang="EN-US">, </span>数字<span lang="EN-US">(01&#8230;&#8230;12)&nbsp; <br />
</span>　　<span lang="EN-US">%c </span>月<span lang="EN-US">, </span>数字<span lang="EN-US">(1&#8230;&#8230;12)&nbsp; <br />
</span>　　<span lang="EN-US">%b </span>缩写的月份名字<span lang="EN-US">(Jan&#8230;&#8230;Dec)&nbsp; <br />
</span>　　<span lang="EN-US">%j </span>一年中的天数<span lang="EN-US">(001&#8230;&#8230;366)&nbsp; <br />
</span>　　<span lang="EN-US">%H </span>小时<span lang="EN-US">(00&#8230;&#8230;23)&nbsp; <br />
</span>　　<span lang="EN-US">%k </span>小时<span lang="EN-US">(0&#8230;&#8230;23)&nbsp; <br />
</span>　　<span lang="EN-US">%h </span>小时<span lang="EN-US">(01&#8230;&#8230;12)&nbsp; <br />
</span>　　<span lang="EN-US">%I </span>小时<span lang="EN-US">(01&#8230;&#8230;12)&nbsp; <br />
</span>　　<span lang="EN-US">%l </span>小时<span lang="EN-US">(1&#8230;&#8230;12)&nbsp; <br />
</span>　　<span lang="EN-US">%i </span>分钟<span lang="EN-US">, </span>数字<span lang="EN-US">(00&#8230;&#8230;59)&nbsp; <br />
</span>　　<span lang="EN-US">%r </span>时间<span lang="EN-US">,12 </span>小时<span lang="EN-US">(hh:mm:ss [AP]M)&nbsp; <br />
</span>　　<span lang="EN-US">%T </span>时间<span lang="EN-US">,24 </span>小时<span lang="EN-US">(hh:mm:ss)&nbsp; <br />
</span>　　<span lang="EN-US">%S </span>秒<span lang="EN-US">(00&#8230;&#8230;59)&nbsp; <br />
</span>　　<span lang="EN-US">%s </span>秒<span lang="EN-US">(00&#8230;&#8230;59)&nbsp; <br />
</span>　　<span lang="EN-US">%p AM</span>或<span lang="EN-US">PM&nbsp; <br />
</span>　　<span lang="EN-US">%w </span>一个星期中的天数<span lang="EN-US">(0=Sunday &#8230;&#8230;6=Saturday </span>）<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%U </span>星期<span lang="EN-US">(0&#8230;&#8230;52), </span>这里星期天是星期的第一天<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%u </span>星期<span lang="EN-US">(0&#8230;&#8230;52), </span>这里星期一是星期的第一天<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">%% </span>一个文字<span lang="EN-US">&#8220;%&#8221;</span>。<span lang="EN-US">&nbsp; </span></p>
<p>　　所有的其他字符不做解释被复制到结果中。<span lang="EN-US">&nbsp; </span></p>
<p>　　<span lang="EN-US">mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 'Saturday October 1997'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '22:23:00'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',&nbsp; <br />
</span>　　<span lang="EN-US">'%D %y %a %d %m %b %j');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '4th 97 Sat 04 10 Oct 277'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select DATE_FORMAT('1997-10-04 22:23:00',&nbsp; <br />
</span>　　<span lang="EN-US">'%H %k %I %r %T %S %w');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '22 22 10 10:23:00 PM 22:23:00 00 6'&nbsp; <br />
</span>　　<span lang="EN-US">MySQL3.23</span>中，在格式修饰符字符前需要<span lang="EN-US">%</span>。在<span lang="EN-US">MySQL</span>更早的版本中，<span lang="EN-US">%</span>是可选的。<span lang="EN-US">&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">TIME_FORMAT(time,format)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　这象上面的<span lang="EN-US">DATE_FORMAT()</span>函数一样使用，但是<span lang="EN-US">format</span>字符串只能包含处理小时、分钟和秒的那些格式修饰符。其他修饰符产生一个<span lang="EN-US">NULL</span>值或<span lang="EN-US">0</span>。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US"><br />
</span>　　<span lang="EN-US">CURDATE()&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<strong><span lang="EN-US" style="font-family: 宋体">CURRENT_DATE</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　以<span lang="EN-US">'YYYY-MM-DD'</span>或<span lang="EN-US">YYYYMMDD</span>格式返回今天日期值，取决于函数是在一个字符串还是数字上下文被使用。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select CURDATE();&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '1997-12-15'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select CURDATE() + 0;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 19971215&nbsp; </span></p>
<p>　　<span lang="EN-US">CURTIME()&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<strong><span lang="EN-US" style="font-family: 宋体">CURRENT_TIME</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　以<span lang="EN-US">'HH:MM:SS'</span>或<span lang="EN-US">HHMMSS</span>格式返回当前时间值，取决于函数是在一个字符串还是在数字的上下文被使用。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select CURTIME();&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '23:50:26'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select CURTIME() + 0;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 235026&nbsp; </span></p>
<p>　　<span lang="EN-US">NOW()&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">SYSDATE()&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<strong><span lang="EN-US" style="font-family: 宋体">CURRENT_TIMESTAMP</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　以<span lang="EN-US">'YYYY-MM-DD HH:MM:SS'</span>或<span lang="EN-US">YYYYMMDDHHMMSS</span>格式返回当前的日期和时间，取决于函数是在一个字符串还是在数字的上下文被使用。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select NOW();&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '1997-12-15 23:50:26'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select NOW() + 0;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 19971215235026&nbsp; </span></p>
<p>　　<span lang="EN-US">UNIX_TIMESTAMP()&nbsp; <br />
</span>　　　<span lang="EN-US">&nbsp; <br />
</span>　　<strong><span lang="EN-US" style="font-family: 宋体">UNIX_TIMESTAMP(date)&nbsp; </span></strong><strong><span lang="EN-US"><br />
</span><strong><span style="font-family: 宋体">　　</span></strong></strong>如果没有参数调用，返回一个<span lang="EN-US">Unix</span>时间戳记<span lang="EN-US">(</span>从<span lang="EN-US">'1970-01-01 00:00:00'GMT</span>开始的秒数<span lang="EN-US">)</span>。如果<span lang="EN-US">UNIX_TIMESTAMP()</span>用一个<span lang="EN-US">date</span>参数被调用，它返回从<span lang="EN-US">'1970-01-01 00:00:00' GMT</span>开始的秒数值。<span lang="EN-US">date</span>可以是一个<span lang="EN-US">DATE</span>字符串、一个<span lang="EN-US">DATETIME</span>字符串、一个<span lang="EN-US">TIMESTAMP</span>或以<span lang="EN-US">YYMMDD</span>或<span lang="EN-US">YYYYMMDD</span>格式的本地时间的一个数字。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select UNIX_TIMESTAMP();&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 882226357&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select UNIX_TIMESTAMP('1997-10-04 22:23:00');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 875996580&nbsp; <br />
</span>　　当<span lang="EN-US">UNIX_TIMESTAMP</span>被用于一个<span lang="EN-US">TIMESTAMP</span>列，函数将直接接受值，没有隐含的<span lang="EN-US">&#8220;string-to-unix-timestamp&#8221;</span>变换。<span lang="EN-US">&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">FROM_UNIXTIME(unix_timestamp)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　以<span lang="EN-US">'YYYY-MM-DD HH:MM:SS'</span>或<span lang="EN-US">YYYYMMDDHHMMSS</span>格式返回<span lang="EN-US">unix_timestamp</span>参数所表示的值，取决于函数是在一个字符串还是或数字上下文中被使用。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select FROM_UNIXTIME(875996580);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '1997-10-04 22:23:00'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select FROM_UNIXTIME(875996580) + 0;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 19971004222300&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">FROM_UNIXTIME(unix_timestamp,format)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回表示<span lang="EN-US"> Unix </span>时间标记的一个字符串，根据<span lang="EN-US">format</span>字符串格式化。<span lang="EN-US">format</span>可以包含与<span lang="EN-US">DATE_FORMAT()</span>函数列出的条目同样的修饰符。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select FROM_UNIXTIME(UNIX_TIMESTAMP(),&nbsp; <br />
</span>　　<span lang="EN-US">'%Y %D %M %h:%i:%s %x');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '1997 23rd December 03:43:30 x'&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">SEC_TO_TIME(seconds)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">seconds</span>参数，变换成小时、分钟和秒，值以<span lang="EN-US">'HH:MM:SS'</span>或<span lang="EN-US">HHMMSS</span>格式化，取决于函数是在一个字符串还是在数字上下文中被使用。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select SEC_TO_TIME(2378);&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; '00:39:38'&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select SEC_TO_TIME(2378) + 0;&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 3938&nbsp; </span></p>
<p>　　<strong><span lang="EN-US" style="font-family: 宋体">TIME_TO_SEC(time)</span></strong><span lang="EN-US">&nbsp; <br />
</span>　　返回<span lang="EN-US">time</span>参数，转换成秒。<span lang="EN-US">&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select TIME_TO_SEC('22:23:00');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 80580&nbsp; <br />
</span>　　<span lang="EN-US">mysql&gt; select TIME_TO_SEC('00:39:38');&nbsp; <br />
</span>　　<span lang="EN-US">-&gt; 2378 </span></p>
<p><span lang="EN-US">Mysql</span><span style="font-family: 宋体">取系统函数：</span></p>
<p><span lang="EN-US">Select curtime();</span></p>
<p><span lang="EN-US">Select curdate():</span></p>
<p><span lang="EN-US">Select sysdate():<br />
select now();<br />
<br />
</span></p>
转自: <a href="http://blog.163.com/clicked@126/blog/static/3658459520081133509566/" alt="Mysql日期函数">Mysql日期函数</a> <img src ="http://www.blogjava.net/kxx129/aggbug/188168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 10:56 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql字符函数</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188167.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 02:53:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188167.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188167.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188167.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt; font-family: 宋体">对于针对字符串位置的操作，第一个位置被标记为</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">1</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">ASCII(str) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的最左面字符的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ASCII</span><span style="font-size: 12pt; font-family: 宋体">代码值。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">是空字符串，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0</span><span style="font-size: 12pt; font-family: 宋体">。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select ASCII('2');<br />
&nbsp; &nbsp; -&gt; 50<br />
mysql&gt; select ASCII(2);<br />
&nbsp; &nbsp; -&gt; 50<br />
mysql&gt; select ASCII('dx');<br />
&nbsp; &nbsp; -&gt; 100<br />
</span><span style="font-size: 12pt; font-family: 宋体">也可参见</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ORD()</span><span style="font-size: 12pt; font-family: 宋体">函数。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">ORD(str) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">如果字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">最左面字符是一个多字节字符，通过以格式</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]</span><span style="font-size: 12pt; font-family: 宋体">返回字符的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ASCII</span><span style="font-size: 12pt; font-family: 宋体">代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ASCII()</span><span style="font-size: 12pt; font-family: 宋体">函数返回的相同值。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"><br />
mysql&gt; select ORD('2');<br />
&nbsp; &nbsp; -&gt; 50<br />
<br />
<strong><span style="color: red">CONV(N,from_base,to_base) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">在不同的数字基之间变换数字。返回数字</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">的字符串数字，从</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">from_base</span><span style="font-size: 12pt; font-family: 宋体">基变换为</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">to_base</span><span style="font-size: 12pt; font-family: 宋体">基，如果任何参数是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。参数</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">解释为一个整数，但是可以指定为一个整数或一个字符串。最小基是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">2</span><span style="font-size: 12pt; font-family: 宋体">且最大的基是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">36</span><span style="font-size: 12pt; font-family: 宋体">。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">to_base</span><span style="font-size: 12pt; font-family: 宋体">是一个负数，</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">被认为是一个有符号数，否则，</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">被当作无符号数。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> CONV</span><span style="font-size: 12pt; font-family: 宋体">以</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">64</span><span style="font-size: 12pt; font-family: 宋体">位点精度工作。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select CONV("a",16,2);<br />
&nbsp; &nbsp; -&gt; '1010'<br />
mysql&gt; select CONV("6E",18,8);<br />
&nbsp; &nbsp; -&gt; '172'<br />
mysql&gt; select CONV(-17,10,-18);<br />
&nbsp; &nbsp; -&gt; '-H'<br />
mysql&gt; select CONV(10+"10"+'10'+0xa,10,10);<br />
&nbsp; &nbsp; -&gt; '40'<br />
<br />
<strong><span style="color: red">BIN(N) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回二进制值</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">的一个字符串表示，在此</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是一个长整数</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(BIGINT)</span><span style="font-size: 12pt; font-family: 宋体">数字，这等价于</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">CONV(N,10,2)</span><span style="font-size: 12pt; font-family: 宋体">。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select BIN(12);<br />
&nbsp; &nbsp; -&gt; '1100'<br />
<strong><span style="color: red">OCT(N) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回八进制值</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">的一个字符串的表示，在此</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是一个长整型数字，这等价于</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">CONV(N,10,8)</span><span style="font-size: 12pt; font-family: 宋体">。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select OCT(12);<br />
&nbsp; &nbsp; -&gt; '14'<br />
<br />
<strong><span style="color: red">HEX(N) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回十六进制值</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">一个字符串的表示，在此</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是一个长整型</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(BIGINT)</span><span style="font-size: 12pt; font-family: 宋体">数字，这等价于</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">CONV(N,10,16)</span><span style="font-size: 12pt; font-family: 宋体">。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select HEX(255);<br />
&nbsp; &nbsp; -&gt; 'FF'<br />
<br />
<strong><span style="color: red">CHAR(N,...) </span></strong><br />
CHAR()</span><span style="font-size: 12pt; font-family: 宋体">将参数解释为整数并且返回由这些整数的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ASCII</span><span style="font-size: 12pt; font-family: 宋体">代码字符组成的一个字符串。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">值被跳过。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select CHAR(77,121,83,81,'76');<br />
&nbsp; &nbsp; -&gt; 'MySQL'<br />
mysql&gt; select CHAR(77,77.3,'77.3');<br />
&nbsp; &nbsp; -&gt; 'MMM'<br />
<br />
<strong><span style="color: red">CONCAT(str1,str2,...) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回来自于参数连结的字符串。如果任何参数是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。可以有超过</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">2</span><span style="font-size: 12pt; font-family: 宋体">个的参数。一个数字参数被变换为等价的字符串形式。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select CONCAT('My', 'S', 'QL');<br />
&nbsp; &nbsp; -&gt; 'MySQL'<br />
mysql&gt; select CONCAT('My', NULL, 'QL');<br />
&nbsp; &nbsp; -&gt; NULL<br />
mysql&gt; select CONCAT(14.3);<br />
&nbsp; &nbsp; -&gt; '14.3'<br />
<strong><span style="color: red">LENGTH(str) <br />
</span></strong></span><strong><span style="font-size: 12pt; color: red; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥"> <br />
OCTET_LENGTH(str) <br />
</span><span style="font-size: 12pt; color: red; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥"> <br />
CHAR_LENGTH(str) </span></strong><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"><br />
</span><span style="font-size: 12pt; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">CHARACTER_LENGTH(str) </span></strong><br />
</span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的长度。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select LENGTH('text');<br />
&nbsp; &nbsp; -&gt; 4<br />
mysql&gt; select OCTET_LENGTH('text');<br />
&nbsp; &nbsp; -&gt; 4<br />
</span><span style="font-size: 12pt; font-family: 宋体">注意，对于多字节字符，其</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">CHAR_LENGTH()</span><span style="font-size: 12pt; font-family: 宋体">仅计算一次。</span><span style="font-size: 12pt; font-family: ˎ̥"> <span lang="EN-US"><br />
<strong><span style="color: red">LOCATE(substr,str) <br />
</span></strong></span></span><span style="font-size: 12pt; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">POSITION(substr IN str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回子串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">substr</span><span style="font-size: 12pt; font-family: 宋体">在字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">第一个出现的位置，如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">substr</span><span style="font-size: 12pt; font-family: 宋体">不是在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">里面，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0. <br />
mysql&gt; select LOCATE('bar', 'foobarbar');<br />
&nbsp; &nbsp; -&gt; 4<br />
mysql&gt; select LOCATE('xbar', 'foobar');<br />
&nbsp; &nbsp; -&gt; 0<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">LOCATE(substr,str,pos) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回子串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">substr</span><span style="font-size: 12pt; font-family: 宋体">在字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">第一个出现的位置，从位置</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">pos</span><span style="font-size: 12pt; font-family: 宋体">开始。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">substr</span><span style="font-size: 12pt; font-family: 宋体">不是在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">里面，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"><br />
mysql&gt; select LOCATE('bar', 'foobarbar',5);<br />
&nbsp; &nbsp; -&gt; 7<br />
</span><span style="font-size: 12pt; font-family: 宋体">这函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">INSTR(str,substr) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回子串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">substr</span><span style="font-size: 12pt; font-family: 宋体">在字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">中的第一个出现的位置。这与有</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">2</span><span style="font-size: 12pt; font-family: 宋体">个参数形式的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">LOCATE()</span><span style="font-size: 12pt; font-family: 宋体">相同，除了参数被颠倒。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select INSTR('foobarbar', 'bar');<br />
&nbsp; &nbsp; -&gt; 4<br />
mysql&gt; select INSTR('xbar', 'foobar');<br />
&nbsp; &nbsp; -&gt; 0<br />
</span><span style="font-size: 12pt; font-family: 宋体">这函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">LPAD(str,len,padstr) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，左面用字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">padstr</span><span style="font-size: 12pt; font-family: 宋体">填补直到</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符长。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select LPAD('hi',4,'??');<br />
&nbsp; &nbsp; -&gt; '??hi'<br />
<br />
<strong><span style="color: red">RPAD(str,len,padstr) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，右面用字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">padstr</span><span style="font-size: 12pt; font-family: 宋体">填补直到</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符长。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select RPAD('hi',5,'?');<br />
&nbsp; &nbsp; -&gt; 'hi???'<br />
<strong><span style="color: red">LEFT(str,len) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的最左面</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"><br />
mysql&gt; select LEFT('foobarbar', 5);<br />
&nbsp; &nbsp; -&gt; 'fooba'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">RIGHT(str,len) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的最右面</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select RIGHT('foobarbar', 4);<br />
&nbsp; &nbsp; -&gt; 'rbar'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">SUBSTRING(str,pos,len) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">SUBSTRING(str FROM pos FOR len) <br />
</span></strong></span><strong><span style="font-size: 12pt; color: red; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥"> <br />
MID(str,pos,len) <br />
</span></strong><span style="font-size: 12pt; font-family: 宋体">从字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">返回一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符的子串，从位置</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">pos</span><span style="font-size: 12pt; font-family: 宋体">开始。使用</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">FROM</span><span style="font-size: 12pt; font-family: 宋体">的变种形式是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ANSI SQL92</span><span style="font-size: 12pt; font-family: 宋体">语法。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select SUBSTRING('Quadratically',5,6);<br />
&nbsp; &nbsp; -&gt; 'ratica'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">SUBSTRING(str,pos) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">　</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">SUBSTRING(str FROM pos) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">从字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的起始位置</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">pos</span><span style="font-size: 12pt; font-family: 宋体">返回一个子串。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select SUBSTRING('Quadratically',5);<br />
&nbsp; &nbsp; -&gt; 'ratically'<br />
mysql&gt; select SUBSTRING('foobarbar' FROM 4);<br />
&nbsp; &nbsp; -&gt; 'barbar'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数是多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
&lt;!--[if !supportLineBreakNewLine]--&gt;<br />
&lt;!--[endif]--&gt;</span> <br />
<p><strong><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥">SUBSTRING_INDEX(str,delim,count) <br />
</span></strong><span style="font-size: 12pt; font-family: 宋体">返回从字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的第</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">count</span><span style="font-size: 12pt; font-family: 宋体">个出现的分隔符</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">delim</span><span style="font-size: 12pt; font-family: 宋体">之后的子串。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">count</span><span style="font-size: 12pt; font-family: 宋体">是正数，返回最后的分隔符到左边</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(</span><span style="font-size: 12pt; font-family: 宋体">从左边数</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">) </span><span style="font-size: 12pt; font-family: 宋体">的所有字符。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">count</span><span style="font-size: 12pt; font-family: 宋体">是负数，返回最后的分隔符到右边的所有字符</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(</span><span style="font-size: 12pt; font-family: 宋体">从右边数</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">)</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select SUBSTRING_INDEX('<a href="http://www.mysql.com/" target="_blank">www.mysql.com</a>', '.', 2);<br />
&nbsp; &nbsp; -&gt; '<a href="http://www.mysql/" target="_blank">www.mysql</a>'<br />
mysql&gt; select SUBSTRING_INDEX('<a href="http://www.mysql.com/" target="_blank">www.mysql.com</a>', '.', -2);<br />
&nbsp; &nbsp; -&gt; 'mysql.com'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">LTRIM(str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回删除了其前置空格字符的字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select LTRIM(' barbar');<br />
&nbsp; &nbsp; -&gt; 'barbar'<br />
<strong><span style="color: red">RTRIM(str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回删除了其拖后空格字符的字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select RTRIM('barbar &nbsp; ');<br />
&nbsp; &nbsp; -&gt; 'barbar'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">TRIM([[BOTH | LEA</span></strong></span></p>
<p><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">DING | TRAILING] [remstr] FROM] str) <br />
</span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，其所有</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">remstr</span><span style="font-size: 12pt; font-family: 宋体">前缀或后缀被删除了。如果没有修饰符</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">BOTH</span><span style="font-size: 12pt; font-family: 宋体">、</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">LEADING</span><span style="font-size: 12pt; font-family: 宋体">或</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">TRAILING</span><span style="font-size: 12pt; font-family: 宋体">给出，</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">BOTH</span><span style="font-size: 12pt; font-family: 宋体">被假定。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">remstr</span><span style="font-size: 12pt; font-family: 宋体">没被指定，空格被删除。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select TRIM(' bar &nbsp; ');<br />
&nbsp; &nbsp; -&gt; 'bar'<br />
mysql&gt; select TRIM(LEADING 'x' FROM 'xxxbarxxx');<br />
&nbsp; &nbsp; -&gt; 'barxxx'<br />
mysql&gt; select TRIM(BOTH 'x' FROM 'xxxbarxxx');<br />
&nbsp; &nbsp; -&gt; 'bar'<br />
mysql&gt; select TRIM(TRAILING 'xyz' FROM 'barxxyz');<br />
&nbsp; &nbsp; -&gt; 'barx'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">SOUNDEX(str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">的一个同音字符串。听起来</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;</span><span style="font-size: 12pt; font-family: 宋体">大致相同</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8221;</span><span style="font-size: 12pt; font-family: 宋体">的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">2</span><span style="font-size: 12pt; font-family: 宋体">个字符串应该有相同的同音字符串。一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;</span><span style="font-size: 12pt; font-family: 宋体">标准</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8221;</span><span style="font-size: 12pt; font-family: 宋体">的同音字符串长是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">4</span><span style="font-size: 12pt; font-family: 宋体">个字符，但是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">SOUNDEX()</span><span style="font-size: 12pt; font-family: 宋体">函数返回一个任意长的字符串。你可以在结果上使用</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">SUBSTRING()</span><span style="font-size: 12pt; font-family: 宋体">得到一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;</span><span style="font-size: 12pt; font-family: 宋体">标准</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8221;</span><span style="font-size: 12pt; font-family: 宋体">的</span><span style="font-size: 12pt; font-family: ˎ̥"> </span><span style="font-size: 12pt; font-family: 宋体">同音串。所有非数字字母字符在给定的字符串中被忽略。所有在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">A-Z</span><span style="font-size: 12pt; font-family: 宋体">之外的字符国际字母被当作元音。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select SOUNDEX('Hello');<br />
&nbsp; &nbsp; -&gt; 'H400'<br />
mysql&gt; select SOUNDEX('Quadratically');<br />
&nbsp; &nbsp; -&gt; 'Q36324'<br />
<br />
<strong><span style="color: red">SPACE(N) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回由</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">个空格字符组成的一个字符串。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select SPACE(6);<br />
&nbsp; &nbsp; -&gt; ' &nbsp; &nbsp; '<br />
<br />
<strong><span style="color: red">REPLACE(str,from_str,to_str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，其字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">from_str</span><span style="font-size: 12pt; font-family: 宋体">的所有出现由字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">to_str</span><span style="font-size: 12pt; font-family: 宋体">代替。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select REPLACE('<a href="http://www.mysql.com/" target="_blank">www.mysql.com</a>', 'w', 'Ww');<br />
&nbsp; &nbsp; -&gt; 'WwWwWw.mysql.com'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">REPEAT(str,count) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回由重复</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">countTimes</span><span style="font-size: 12pt; font-family: 宋体">次的字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">组成的一个字符串。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">count &lt;= 0</span><span style="font-size: 12pt; font-family: 宋体">，返回一个空字符串。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">或</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">count</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select REPEAT('MySQL', 3);<br />
&nbsp; &nbsp; -&gt; 'MySQLMySQLMySQL'<br />
<br />
<strong><span style="color: red">REVERSE(str) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回颠倒字符顺序的字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select REVERSE('abc');<br />
&nbsp; &nbsp; -&gt; 'cba'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">INSERT(str,pos,len,newstr) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，在位置</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">pos</span><span style="font-size: 12pt; font-family: 宋体">起始的子串且</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">len</span><span style="font-size: 12pt; font-family: 宋体">个字符长得子串由字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">newstr</span><span style="font-size: 12pt; font-family: 宋体">代替。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select INSERT('Quadratic', 3, 4, 'What');<br />
&nbsp; &nbsp; -&gt; 'QuWhattic'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">ELT(N,str1,str2,str3,...) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N= 1</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str1</span><span style="font-size: 12pt; font-family: 宋体">，如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N= 2</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str2</span><span style="font-size: 12pt; font-family: 宋体">，等等。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">小于</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">1</span><span style="font-size: 12pt; font-family: 宋体">或大于参数个数，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ELT()</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">FIELD()</span><span style="font-size: 12pt; font-family: 宋体">反运算。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select ELT(1, 'ej', 'Heja', 'hej', 'foo');<br />
&nbsp; &nbsp; -&gt; 'ej'<br />
mysql&gt; select ELT(4, 'ej', 'Heja', 'hej', 'foo');<br />
&nbsp; &nbsp; -&gt; 'foo'<br />
<strong><span style="color: red">FIELD(str,str1,str2,str3,...) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str1, str2, str3, ...</span><span style="font-size: 12pt; font-family: 宋体">清单的索引。如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">没找到，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">FIELD()</span><span style="font-size: 12pt; font-family: 宋体">是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ELT()</span><span style="font-size: 12pt; font-family: 宋体">反运算。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');<br />
&nbsp; &nbsp; -&gt; 2<br />
mysql&gt; select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');<br />
&nbsp; &nbsp; -&gt; 0<br />
<strong><span style="color: red">FIND_IN_SET(str,strlist) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">如果字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">在由</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">子串组成的表</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">strlist</span><span style="font-size: 12pt; font-family: 宋体">之中，返回一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">1</span><span style="font-size: 12pt; font-family: 宋体">到</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">N</span><span style="font-size: 12pt; font-family: 宋体">的值。一个字符串表是被</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;,&#8221;</span><span style="font-size: 12pt; font-family: 宋体">分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">SET</span><span style="font-size: 12pt; font-family: 宋体">的列，</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">FIND_IN_SET()</span><span style="font-size: 12pt; font-family: 宋体">函数被优化而使用位运算！如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">不是在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">strlist</span><span style="font-size: 12pt; font-family: 宋体">里面或如果</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">strlist</span><span style="font-size: 12pt; font-family: 宋体">是空字符串，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0</span><span style="font-size: 12pt; font-family: 宋体">。如果任何一个参数是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">，返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。如果第一个参数包含一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;,&#8221;</span><span style="font-size: 12pt; font-family: 宋体">，该函数将工作不正常。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; SELECT FIND_IN_SET('b','a,b,c,d');<br />
&nbsp; &nbsp; -&gt; 2<br />
<br />
<strong><span style="color: red">MAKE_SET(bits,str1,str2,...) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回一个集合</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> (</span><span style="font-size: 12pt; font-family: 宋体">包含由</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;,&#8221;</span><span style="font-size: 12pt; font-family: 宋体">字符分隔的子串组成的一个字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">)</span><span style="font-size: 12pt; font-family: 宋体">，由相应的位在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">bits</span><span style="font-size: 12pt; font-family: 宋体">集合中的的字符串组成。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str1</span><span style="font-size: 12pt; font-family: 宋体">对应于位</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">0</span><span style="font-size: 12pt; font-family: 宋体">，</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str2</span><span style="font-size: 12pt; font-family: 宋体">对应位</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">1</span><span style="font-size: 12pt; font-family: 宋体">，等等。在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str1, str2, ...</span><span style="font-size: 12pt; font-family: 宋体">中的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">串不添加到结果中。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; SELECT MAKE_SET(1,'a','b','c');<br />
&nbsp; &nbsp; -&gt; 'a'<br />
mysql&gt; SELECT MAKE_SET(1 | 4,'hello','nice','world');<br />
&nbsp; &nbsp; -&gt; 'hello,world'<br />
mysql&gt; SELECT MAKE_SET(0,'a','b','c');<br />
&nbsp; &nbsp; -&gt; ''<br />
<strong><span style="color: red">EXPORT_SET(bits,on,off,[separator,[number_of_bits]]) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">返回一个字符串，在这里对于在</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;bits&#8221;</span><span style="font-size: 12pt; font-family: 宋体">中设定每一位，你得到一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;on&#8221;</span><span style="font-size: 12pt; font-family: 宋体">字符串，并且对于每个复位</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(reset)</span><span style="font-size: 12pt; font-family: 宋体">的位，你得到一个</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;off&#8221;</span><span style="font-size: 12pt; font-family: 宋体">字符串。每个字符串用</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;separator&#8221;</span><span style="font-size: 12pt; font-family: 宋体">分隔</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(</span><span style="font-size: 12pt; font-family: 宋体">缺省</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;,&#8221;)</span><span style="font-size: 12pt; font-family: 宋体">，并且只有</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;bits&#8221;</span><span style="font-size: 12pt; font-family: 宋体">的</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">&#8220;number_of_bits&#8221; (</span><span style="font-size: 12pt; font-family: 宋体">缺省</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">64)</span><span style="font-size: 12pt; font-family: 宋体">位被使用。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select EXPORT_SET(5,'Y','N',',',4)<br />
&nbsp; &nbsp; -&gt; Y,N,Y,N <br />
<strong><span style="color: red">LCASE(str) <br />
</span></strong></span><strong><span style="font-size: 12pt; color: red; font-family: 宋体">　</span></strong><strong><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥"> <br />
LOWER(str) <br />
</span></strong><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，根据当前字符集映射</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(</span><span style="font-size: 12pt; font-family: 宋体">缺省是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ISO-8859-1 Latin1)</span><span style="font-size: 12pt; font-family: 宋体">把所有的字符改变成小写。该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select LCASE('QUADRATICALLY');<br />
&nbsp; &nbsp; -&gt; 'quadratically'<br />
<br />
<strong><span style="color: red">UCASE(str) <br />
</span></strong></span><strong><span style="font-size: 12pt; color: red; font-family: 宋体">　</span></strong><strong><span lang="EN-US" style="font-size: 12pt; color: red; font-family: ˎ̥"> <br />
UPPER(str) <br />
</span></strong><span style="font-size: 12pt; font-family: 宋体">返回字符串</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">str</span><span style="font-size: 12pt; font-family: 宋体">，根据当前字符集映射</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">(</span><span style="font-size: 12pt; font-family: 宋体">缺省是</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">ISO-8859-1 Latin1)</span><span style="font-size: 12pt; font-family: 宋体">把所有的字符改变成大写。该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; select UCASE('Hej');<br />
&nbsp; &nbsp; -&gt; 'HEJ'<br />
</span><span style="font-size: 12pt; font-family: 宋体">该函数对多字节是可靠的。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
<strong><span style="color: red">LOAD_FILE(file_name) <br />
</span></strong></span><span style="font-size: 12pt; font-family: 宋体">读入文件并且作为一个字符串返回文件内容。文件必须在服务器上，你必须指定到文件的完整路径名，而且你必须有</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">file</span><span style="font-size: 12pt; font-family: 宋体">权限。文件必须所有内容都是可读的并且小于</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">max_allowed_packet</span><span style="font-size: 12pt; font-family: 宋体">。如果文件不存在或由于上面原因之一不能被读出，函数返回</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">NULL</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; UPDATE table_name<br />
&nbsp; &nbsp; &nbsp; SET blob_column=LOAD_FILE("/tmp/picture")<br />
&nbsp; &nbsp; &nbsp; WHERE id=1;<br />
<br />
MySQL</span><span style="font-size: 12pt; font-family: 宋体">必要时自动变换数字为字符串，并且反过来也如此：</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
mysql&gt; SELECT 1+"1";<br />
&nbsp; &nbsp; -&gt; 2<br />
mysql&gt; SELECT CONCAT(2,' test');<br />
&nbsp; &nbsp; -&gt; '2 test'<br />
</span><span style="font-size: 12pt; font-family: 宋体">如果你想要明确地变换一个数字到一个字符串，把它作为参数传递到</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥">CONCAT()</span><span style="font-size: 12pt; font-family: 宋体">。</span><span lang="EN-US" style="font-size: 12pt; font-family: ˎ̥"> <br />
</span><span style="font-size: 12pt; font-family: 宋体">如果字符串函数提供一个二进制字符串作为参数，结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比较</span></p>
<br />
转自: <a href="http://blog.163.com/clicked@126/blog/static/36584595200811334531301/" alt="Mysql字符函数">Mysql字符函数</a><img src ="http://www.blogjava.net/kxx129/aggbug/188167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 10:53 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql编码过程</title><link>http://www.blogjava.net/kxx129/archive/2008/03/24/188165.html</link><dc:creator>泰仔在线</dc:creator><author>泰仔在线</author><pubDate>Mon, 24 Mar 2008 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/kxx129/archive/2008/03/24/188165.html</guid><wfw:comment>http://www.blogjava.net/kxx129/comments/188165.html</wfw:comment><comments>http://www.blogjava.net/kxx129/archive/2008/03/24/188165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kxx129/comments/commentRss/188165.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kxx129/services/trackbacks/188165.html</trackback:ping><description><![CDATA[在mysql的一次会话中，服务器收到客户端发来的指令后，大致要执行3个动作：<br />
&nbsp;&nbsp;<span style="color: rgb(255,0,0)">1</span>、服务器认为收到的指令是按当前character_set_client环境变量所指定的字符集编码的，<br />
&nbsp;&nbsp;<span style="font-weight: bold">2</span>、然后再将其转换成character_set_connection所指定的字符集编码<br />
&nbsp;&nbsp;<span style="color: rgb(255,0,0)">3</span>、分析、执行该指令。 <br />
<!--startfragment -->&nbsp; <span style="font-weight: bold">4</span>、 用character_set_results变量所指定的字符集返回服务器向客户端传输的数据<br />
<!--startfragment -->&nbsp;解决这个问题的关键点在于设置 default-character-set&nbsp;变量。 <br />
<br />
转自: <a href=http://blog.163.com/clicked@126/blog/static/36584595200811315741479/ alt="编码过程">编码过程</a><img src ="http://www.blogjava.net/kxx129/aggbug/188165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kxx129/" target="_blank">泰仔在线</a> 2008-03-24 10:50 <a href="http://www.blogjava.net/kxx129/archive/2008/03/24/188165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>