﻿<?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-XZC.Log-随笔分类-mysql</title><link>http://www.blogjava.net/xzclog/category/54749.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 31 Mar 2016 07:34:25 GMT</lastBuildDate><pubDate>Thu, 31 Mar 2016 07:34:25 GMT</pubDate><ttl>60</ttl><item><title>mysql 获取当前日期及格式化 </title><link>http://www.blogjava.net/xzclog/archive/2016/03/30/429889.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Wed, 30 Mar 2016 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2016/03/30/429889.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/429889.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2016/03/30/429889.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/429889.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/429889.html</trackback:ping><description><![CDATA[<div><p>MYSQL 获取当前日期及日期格式<br /> 获取系统日期： <span style="color: #ff0000;">NOW()</span><br />格式化日期： <span style="color: #ff0000;">DATE_FORMAT(date, format)</span><br />注： date：时间字段<br />format：日期格式</p><p>返回系统日期,输出 2009-12-25 14:38:59<br /><span style="color: #00ff00;">select now();</span><br />输出 09-12-25<br /><span style="color: #00ff00;">select date_format(now(),'%y-%m-%d');</span></p><p>根据format字符串格式化date值:</p><p>%S, %s 两位数字形式的秒（ 00,01, ..., 59）<br />%I, %i 两位数字形式的分（ 00,01, ..., 59）<br />%H 两位数字形式的小时，24 小时（00,01, ..., 23）<br />%h 两位数字形式的小时，12 小时（01,02, ..., 12）<br />%k 数字形式的小时，24 小时（0,1, ..., 23）<br />%l 数字形式的小时，12 小时（1, 2, ..., 12）<br />%T 24 小时的时间形式（hh:mm:ss）<br />%r 12 小时的时间形式（hh:mm:ss AM 或hh:mm:ss PM）<br />%p AM或PM<br /> %W 一周中每一天的名称（Sunday, Monday, ..., Saturday）<br />%a 一周中每一天名称的缩写（Sun, Mon, ..., Sat）<br />%d 两位数字表示月中的天数（00, 01,..., 31）<br />%e 数字形式表示月中的天数（1, 2， ..., 31）<br />%D 英文后缀表示月中的天数（1st, 2nd, 3rd,...）<br />%w 以数字形式表示周中的天数（ 0 = Sunday, 1=Monday, ..., 6=Saturday）<br />%j 以三位数字表示年中的天数（ 001, 002, ..., 366）<br />%U 周（0, 1, 52），其中Sunday 为周中的第一天<br />%u 周（0, 1, 52），其中Monday 为周中的第一天<br />%M 月名（January, February, ..., December）<br />%b 缩写的月名（ January, February,...., December）<br />%m 两位数字表示的月份（01, 02, ..., 12）<br />%c 数字表示的月份（1, 2, ...., 12）<br />%Y 四位数字表示的年份<br />%y 两位数字表示的年份<br />%% 直接值&#8220;%&#8221;</p><p>&nbsp;</p><p>&nbsp;</p><p>curdate（）</p><p>&nbsp;</p><p>MySQL 获得当前日期时间 函数<br />1.1 获得当前日期+时间（date + time）函数：now()<br /><br /> mysql&gt; select now();<br /><br /> +---------------------+<br /> | now() |<br /> +---------------------+<br /> | 2008-08-08 22:20:46 |<br /> +---------------------+<br />除了 now() 函数能获得当前的日期时间外，MySQL 中还有下面的函数：<br /><br />current_timestamp()<br /> ,current_timestamp<br /> ,localtime()<br /> ,localtime<br /> ,localtimestamp -- (v4.0.6)<br /> ,localtimestamp() -- (v4.0.6)<br />这些日期时间函数，都等同于 now()。鉴于 now() 函数简短易记，建议总是使用 now() 来替代上面列出的函数。<br /><br />1.2 获得当前日期+时间（date + time）函数：sysdate()<br /><br /> sysdate() 日期时间函数跟 now() 类似，不同之处在于：now() 在执行开始时值就得到了， sysdate() 在函数执行时动态得到值。看下面的例子就明白了：<br /><br />mysql&gt; select now(), sleep(3), now();<br /><br /> +---------------------+----------+---------------------+<br /> | now() | sleep(3) | now() |<br /> +---------------------+----------+---------------------+<br /> | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |<br /> +---------------------+----------+---------------------+mysql&gt; select sysdate(), sleep(3), sysdate();<br /><br /> +---------------------+----------+---------------------+<br /> | sysdate() | sleep(3) | sysdate() |<br /> +---------------------+----------+---------------------+<br /> | 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 |<br /> +---------------------+----------+---------------------+<br />可以看到，虽然中途 sleep 3 秒，但 now() 函数两次的时间值是相同的； sysdate() 函数两次得到的时间值相差 3秒。MySQL Manual 中是这样描述 sysdate() 的：Return the time at which the functionexecutes。<br /><br />sysdate() 日期时间函数，一般情况下很少用到。<br /><br />2. 获得当前日期（date）函数：curdate()<br /><br /> mysql&gt; select curdate();<br /><br /> +------------+<br /> | curdate() |<br /> +------------+<br /> | 2008-08-08 |<br /> +------------+<br />其中，下面的两个日期函数等同于 curdate()：<br /><br />current_date()<br /> ,current_date<br /> 3. 获得当前时间（time）函数：curtime()<br /><br /> mysql&gt; select curtime();<br /><br /> +-----------+<br /> | curtime() |<br /> +-----------+<br /> | 22:41:30 |<br /> +-----------+<br />其中，下面的两个时间函数等同于 curtime()：<br /><br />current_time()<br /> ,current_time<br /> 4. 获得当前 UTC 日期时间函数：utc_date(), utc_time(), utc_timestamp()<br /><br /> mysql&gt; select utc_timestamp(), utc_date(), utc_time(), now()<br /><br /> +---------------------+------------+------------+---------------------+<br /> | utc_timestamp() | utc_date() | utc_time() | now() |<br /> +---------------------+------------+------------+---------------------+<br /> | 2008-08-08 14:47:11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |<br /> +---------------------+------------+------------+---------------------+<br />因为我国位于东八时区，所以本地时间 = UTC 时间 + 8 小时。UTC 时间在业务涉及多个国家和地区的时候，非常有用。<br /><br /> 二、MySQL 日期时间 Extract（选取） 函数。<br />1. 选取日期时间的各个部分：日期、时间、年、季度、月、日、小时、分钟、秒、微秒<br /><br />set @dt = '2008-09-10 07:15:30.123456';<br /><br /> select date(@dt); -- 2008-09-10<br /> select time(@dt); -- 07:15:30.123456<br /> select year(@dt); -- 2008<br /> select quarter(@dt); -- 3<br /> select month(@dt); -- 9<br /> select week(@dt); -- 36<br /> select day(@dt); -- 10<br /> select hour(@dt); -- 7<br /> select minute(@dt); -- 15<br /> select second(@dt); -- 30<br /> select microsecond(@dt); -- 123456<br /> 2. MySQL Extract() 函数，可以上面实现类似的功能：<br /><br />set @dt = '2008-09-10 07:15:30.123456';<br /><br /> select extract(year from @dt); -- 2008<br /> select extract(quarter from @dt); -- 3<br /> select extract(month from @dt); -- 9<br /> select extract(week from @dt); -- 36<br /> select extract(day from @dt); -- 10<br /> select extract(hour from @dt); -- 7<br /> select extract(minute from @dt); -- 15<br /> select extract(second from @dt); -- 30<br /> select extract(microsecond from @dt); -- 123456select extract(year_month from @dt); -- 200809<br /> select extract(day_hour from @dt); -- 1007<br /> select extract(day_minute from @dt); -- 100715<br /> select extract(day_second from @dt); -- 10071530<br /> select extract(day_microsecond from @dt); -- 10071530123456<br /> select extract(hour_minute from @dt); -- 715<br /> select extract(hour_second from @dt); -- 71530<br /> select extract(hour_microsecond from @dt); -- 71530123456<br /> select extract(minute_second from @dt); -- 1530<br /> select extract(minute_microsecond from @dt); -- 1530123456<br /> select extract(second_microsecond from @dt); -- 30123456<br /> MySQLExtract() 函数除了没有date(),time() 的功能外，其他功能一应具全。并且还具有选取&#8216;day_microsecond&#8217;等功能。注意这里不是只选取 day 和 microsecond，而是从日期的 day 部分一直选取到 microsecond 部分。够强悍的吧！<br /><br />MySQL Extract() 函数唯一不好的地方在于：你需要多敲几次键盘。<br /><br />3. MySQL dayof&#8230; 函数：dayofweek(), dayofmonth(), dayofyear()<br /><br />分别返回日期参数，在一周、一月、一年中的位置。<br /><br />set @dt = '2008-08-08';<br /><br /> select dayofweek(@dt); -- 6<br /> select dayofmonth(@dt); -- 8<br /> select dayofyear(@dt); -- 221<br />日期 &#8216;2008-08-08&#8242; 是一周中的第 6 天（1 = Sunday, 2 = Monday, &#8230;, 7 = Saturday）；一月中的第 8 天；一年中的第 221 天。<br /><br />4. MySQL week&#8230; 函数：week(), weekofyear(), dayofweek(), weekday(), yearweek()<br /><br /> set @dt = '2008-08-08';<br /><br /> select week(@dt); -- 31<br /> select week(@dt,3); -- 32<br /> select weekofyear(@dt); -- 32<br /><br /> select dayofweek(@dt); -- 6<br /> select weekday(@dt); -- 4<br /><br /> select yearweek(@dt); -- 200831<br /> MySQL week() 函数，可以有两个参数，具体可看手册。 weekofyear() 和 week() 一样，都是计算&#8220;某天&#8221;是位于一年中的第几周。 weekofyear(@dt) 等价于 week(@dt,3)。<br /><br />MySQLweekday() 函数和 dayofweek() 类似，都是返回&#8220;某天&#8221;在一周中的位置。不同点在于参考的标准， weekday：(0 =Monday, 1 = Tuesday, &#8230;, 6 = Sunday)； dayofweek：（1 = Sunday, 2 = Monday,&#8230;, 7 = Saturday）<br /><br />MySQL yearweek() 函数，返回 year(2008) + week 位置(31)。<br /><br />5. MySQL 返回星期和月份名称函数：dayname(), monthname()<br /><br /> set @dt = '2008-08-08';<br /><br /> select dayname(@dt); -- Friday<br /> select monthname(@dt); -- August<br />思考，如何返回中文的名称呢？<br /><br />6. MySQL last_day() 函数：返回月份中的最后一天。<br /><br />select last_day('2008-02-01'); -- 2008-02-29<br /> select last_day('2008-08-08'); -- 2008-08-31<br /> MySQL last_day() 函数非常有用，比如我想得到当前月份中有多少天，可以这样来计算：<br /><br />mysql&gt; select now(), day(last_day(now())) as days;<br /><br /> +---------------------+------+<br /> | now() | days |<br /> +---------------------+------+<br /> | 2008-08-09 11:45:45 | 31 |<br /> +---------------------+------+ 三、MySQL 日期时间计算函数<br />1. MySQL 为日期增加一个时间间隔：date_add()<br /><br /> set @dt = now();<br /><br /> select date_add(@dt, interval 1 day); -- add 1 day<br /> select date_add(@dt, interval 1 hour); -- add 1 hour<br /> select date_add(@dt, interval 1 minute); -- ...<br />select date_add(@dt, interval 1 second);<br /> select date_add(@dt, interval 1 microsecond);<br /> select date_add(@dt, interval 1 week);<br /> select date_add(@dt, interval 1 month);<br /> select date_add(@dt, interval 1 quarter);<br /> select date_add(@dt, interval 1 year);select date_add(@dt, interval -1 day); -- sub 1 day<br /> MySQL adddate(), addtime()函数，可以用 date_add() 来替代。下面是 date_add() 实现 addtime() 功能示例：<br /><br />mysql&gt; set @dt = '2008-08-09 12:12:33';<br /><br /> mysql&gt;<br /> mysql&gt; select date_add(@dt, interval '01:15:30' hour_second);<br /><br /> +------------------------------------------------+<br /> | date_add(@dt, interval '01:15:30' hour_second) |<br /> +------------------------------------------------+<br /> | 2008-08-09 13:28:03 |<br /> +------------------------------------------------+mysql&gt; select date_add(@dt, interval '1 01:15:30' day_second);<br /><br /> +-------------------------------------------------+<br /> | date_add(@dt, interval '1 01:15:30' day_second) |<br /> +-------------------------------------------------+<br /> | 2008-08-10 13:28:03 |<br /> +-------------------------------------------------+<br />date_add() 函数，分别为 @dt 增加了&#8220;1小时 15分 30秒&#8221; 和 &#8220;1天 1小时 15分 30秒&#8221;。建议：总是使用 date_add() 日期时间函数来替代 adddate(), addtime()。<br /><br />2. MySQL 为日期减去一个时间间隔：date_sub()<br /><br /> mysql&gt; select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);<br /><br /> +----------------------------------------------------------------+<br /> | date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) |<br /> +----------------------------------------------------------------+<br /> | 1997-12-30 22:58:59 |<br /> +----------------------------------------------------------------+<br />MySQL date_sub() 日期时间函数 和 date_add() 用法一致，不再赘述。另外，MySQL 中还有两个函数 subdate(), subtime()，建议，用 date_sub() 来替代。<br /><br />3. MySQL 另类日期函数：period_add(P,N), period_diff(P1,P2)<br /><br />函数参数&#8220;P&#8221; 的格式为&#8220;YYYYMM&#8221; 或者 &#8220;YYMM&#8221;，第二个参数&#8220;N&#8221; 表示增加或减去 N month（月）。<br /><br />MySQL period_add(P,N)：日期加/减去N月。<br /><br />mysql&gt; select period_add(200808,2), period_add(20080808,-2)<br /><br /> +----------------------+-------------------------+<br /> | period_add(200808,2) | period_add(20080808,-2) |<br /> +----------------------+-------------------------+<br /> | 200810 | 20080806 |<br /> +----------------------+-------------------------+<br />MySQL period_diff(P1,P2)：日期 P1-P2，返回 N 个月。<br /><br />mysql&gt; select period_diff(200808, 200801);<br /><br /> +-----------------------------+<br /> | period_diff(200808, 200801) |<br /> +-----------------------------+<br /> | 7 |<br /> +-----------------------------+<br />在 MySQL 中，这两个日期函数，一般情况下很少用到。<br /><br />4. MySQL 日期、时间相减函数：datediff(date1,date2), timediff(time1,time2)<br /><br /> MySQL datediff(date1,date2)：两个日期相减 date1 - date2，返回天数。<br /><br />select datediff('2008-08-08', '2008-08-01'); -- 7<br /> select datediff('2008-08-01', '2008-08-08'); -- -7<br /> MySQL timediff(time1,time2)：两个日期相减 time1 - time2，返回 time 差值。<br /><br />select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08<br /> select timediff('08:08:08', '00:00:00'); -- 08:08:08<br />注意：timediff(time1,time2) 函数的两个参数类型必须相同。<br /><br /> 四、MySQL 日期转换函数、时间转换函数<br />1. MySQL （时间、秒）转换函数：time_to_sec(time), sec_to_time(seconds)<br /><br /> select time_to_sec('01:00:05'); -- 3605<br /> select sec_to_time(3605); -- '01:00:05'<br /> 2. MySQL （日期、天数）转换函数：to_days(date), from_days(days)<br /><br /> select to_days('0000-00-00'); -- 0<br /> select to_days('2008-08-08'); -- 733627select from_days(0); -- '0000-00-00'<br /> select from_days(733627); -- '2008-08-08'<br /> 3. MySQL Str to Date （字符串转换为日期）函数：str_to_date(str, format)<br /><br /> select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09<br /> select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09<br /> select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09<br /> select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30<br /> select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30<br />可以看到，str_to_date(str,format) 转换函数，可以把一些杂乱无章的字符串转换为日期格式。另外，它也可以转换为时间。&#8220;format&#8221; 可以参看 MySQL 手册。<br /><br />4. MySQL Date/Time to Str（日期/时间转换为字符串）函数：date_format(date,format), time_format(time,format)<br /><br /> mysql&gt; select date_format('2008-08-08 22:23:00', '%W %M %Y');<br /><br /> +------------------------------------------------+<br /> | date_format('2008-08-08 22:23:00', '%W %M %Y') |<br /> +------------------------------------------------+<br /> | Friday August 2008 |<br /> +------------------------------------------------+mysql&gt; select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s');<br /><br /> +----------------------------------------------------+<br /> | date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s') |<br /> +----------------------------------------------------+<br /> | 20080808222301 |<br /> +----------------------------------------------------+mysql&gt; select time_format('22:23:01', '%H.%i.%s');<br /><br /> +-------------------------------------+<br /> | time_format('22:23:01', '%H.%i.%s') |<br /> +-------------------------------------+<br /> | 22.23.01 |<br /> +-------------------------------------+<br />MySQL 日期、时间转换函数：date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。<br /><br />5. MySQL 获得国家地区时间格式函数：get_format()<br /><br /> MySQL get_format() 语法：<br /><br />get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal'<br /> MySQL get_format() 用法的全部示例：<br /><br />select get_format(date,'usa') ; -- '%m.%d.%Y'<br /> select get_format(date,'jis') ; -- '%Y-%m-%d'<br /> select get_format(date,'iso') ; -- '%Y-%m-%d'<br /> select get_format(date,'eur') ; -- '%d.%m.%Y'<br /> select get_format(date,'internal') ; -- '%Y%m%d'<br /> select get_format(datetime,'usa') ; -- '%Y-%m-%d %H.%i.%s'<br /> select get_format(datetime,'jis') ; -- '%Y-%m-%d %H:%i:%s'<br /> select get_format(datetime,'iso') ; -- '%Y-%m-%d %H:%i:%s'<br /> select get_format(datetime,'eur') ; -- '%Y-%m-%d %H.%i.%s'<br /> select get_format(datetime,'internal') ; -- '%Y%m%d%H%i%s'<br /> select get_format(time,'usa') ; -- '%h:%i:%s %p'<br /> select get_format(time,'jis') ; -- '%H:%i:%s'<br /> select get_format(time,'iso') ; -- '%H:%i:%s'<br /> select get_format(time,'eur') ; -- '%H.%i.%s'<br /> select get_format(time,'internal') ; -- '%H%i%s'<br /> MySQL get_format() 函数在实际中用到机会的比较少。<br /><br />6. MySQL 拼凑日期、时间函数：makdedate(year,dayofyear), maketime(hour,minute,second)<br /><br /> select makedate(2001,31); -- '2001-01-31'<br /> select makedate(2001,32); -- '2001-02-01'select maketime(12,15,30); -- '12:15:30' 五、MySQL 时间戳（Timestamp）函数<br />1. MySQL 获得当前时间戳函数：current_timestamp, current_timestamp()<br /><br /> mysql&gt; select current_timestamp, current_timestamp();<br /><br /> +---------------------+---------------------+<br /> | current_timestamp | current_timestamp() |<br /> +---------------------+---------------------+<br /> | 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |<br /> +---------------------+---------------------+<br />2. MySQL （Unix 时间戳、日期）转换函数：<br /><br />unix_timestamp(),<br /> unix_timestamp(date),<br /> from_unixtime(unix_timestamp),<br /> from_unixtime(unix_timestamp,format)<br />下面是示例：<br /><br />select unix_timestamp(); -- 1218290027<br /> select unix_timestamp('2008-08-08'); -- 1218124800<br /> select unix_timestamp('2008-08-08 12:30:00'); -- 1218169800select from_unixtime(1218290027); -- '2008-08-09 21:53:47'<br /> select from_unixtime(1218124800); -- '2008-08-08 00:00:00'<br /> selectfrom_unixtime(1218169800); -- '2008-08-08 12:30:00'selectfrom_unixtime(1218169800, '%Y %D %M %h:%i:%s %x'); -- '2008 8th August12:30:00 2008'<br /> 3. MySQL 时间戳（timestamp）转换、增、减函数：<br /><br />timestamp(date) -- date to timestamp<br /> timestamp(dt,time) -- dt + time<br /> timestampadd(unit,interval,datetime_expr) --<br />timestampdiff(unit,datetime_expr1,datetime_expr2) --<br />请看示例部分：<br /><br />select timestamp('2008-08-08'); -- 2008-08-08 00:00:00<br /> select timestamp('2008-08-08 08:00:00', '01:01:01'); -- 2008-08-08 09:01:01<br /> selecttimestamp('2008-08-08 08:00:00', '10 01:01:01'); -- 2008-08-1809:01:01select timestampadd(day, 1, '2008-08-08 08:00:00'); --2008-08-09 08:00:00<br /> select date_add('2008-08-08 08:00:00', interval 1 day); -- 2008-08-09 08:00:00<br /> MySQL timestampadd() 函数类似于 date_add()。<br /><br />select timestampdiff(year,'2002-05-01','2001-01-01'); -- -1<br /> select timestampdiff(day ,'2002-05-01','2001-01-01'); -- -485<br /> select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -12<br /><br /> select datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00'); -- 7<br /> MySQL timestampdiff() 函数就比 datediff() 功能强多了，datediff() 只能计算两个日期（date）之间相差的天数。<br /><br /> 六、MySQL 时区（timezone）转换函数convert_tz(dt,from_tz,to_tz)selectconvert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-0804:00:00<br />时区转换也可以通过 date_add, date_sub, timestampadd 来实现。<br /><br />select date_add('2008-08-08 12:00:00', interval -8 hour); -- 2008-08-08 04:00:00<br /> select date_sub('2008-08-08 12:00:00', interval 8 hour); -- 2008-08-08 04:00:00<br /> select timestampadd(hour, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00:00</p></div><img src ="http://www.blogjava.net/xzclog/aggbug/429889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2016-03-30 10:33 <a href="http://www.blogjava.net/xzclog/archive/2016/03/30/429889.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL 获得当前日期时间 函数</title><link>http://www.blogjava.net/xzclog/archive/2016/02/22/429391.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Mon, 22 Feb 2016 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2016/02/22/429391.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/429391.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2016/02/22/429391.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/429391.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/429391.html</trackback:ping><description><![CDATA[<div><p>获得当前日期+时间（date + time）函数：now()</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql&gt; select<span> now();  </span>+---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+</pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>获得当前日期+时间（date + time）函数：sysdate()<br />sysdate() 日期时间函数跟 now() 类似，不同之处在于：now() 在执行开始时值就得到了， sysdate() 在函数执行时动态得到值。看下面的例子就明白了：</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql&gt; select now(), sleep(3<span>), now();  </span>+---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 | +---------------------+----------+---------------------+</pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>sysdate() 日期时间函数，一般情况下很少用到。</p><p>&nbsp;</p><p>MySQL 获得当前时间戳函数：current_timestamp, current_timestamp()</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql&gt; select current_timestamp, current_timestamp<span>();  </span>+---------------------+---------------------+ | current_timestamp | current_timestamp() | +---------------------+---------------------+ | 2008-08-09 23:22:24 | 2008-08-09 23:22:24 | +---------------------+---------------------+</pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><h2>&nbsp;</h2><h2><strong><span style="font-size: 14pt;">MySQL 日期转换函数、时间转换函数</span></strong></h2><p>MySQL Date/Time to Str（日期/时间转换为字符串）函数：date_format(date,format), time_format(time,format)</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql<span style="color: #808080;">&gt;</span> <span style="color: #0000ff;">select</span> date_format(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 22:23:01</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%Y%m%d%H%i%s</span><span style="color: #ff0000;">'</span><span style="color: #000000;">);  </span><span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------+</span> <span style="color: #808080;">|</span> date_format(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 22:23:01</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%Y%m%d%H%i%s</span><span style="color: #ff0000;">'</span>) <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------+</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">20080808222301</span> <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------+</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>MySQL 日期、时间转换函数：date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式。它是 str_to_date(str,format) 函数的 一个逆转换。</p><p>&nbsp;</p><p><span>MySQL Str to Date （字符串转换为日期）函数：str_to_date(str, format)</span></p><div><pre><span style="color: #0000ff;">select</span> str_to_date(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08/09/2008</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%m/%d/%Y</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09</span> <span style="color: #0000ff;">select</span> str_to_date(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08/09/08</span><span style="color: #ff0000;">'</span> , <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%m/%d/%y</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09</span> <span style="color: #0000ff;">select</span> str_to_date(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08.09.2008</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%m.%d.%Y</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09</span> <span style="color: #0000ff;">select</span> str_to_date(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08:09:30</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%h:%i:%s</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 08:09:30</span> <span style="color: #0000ff;">select</span> str_to_date(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08.09.2008 08:09:30</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%m.%d.%Y %h:%i:%s</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09 08:09:30</span></pre></div><p><span>可以看到，str_to_date(str,format) 转换函数，可以把一些杂乱无章的字符串转换为日期格式。另外，它也可以转换为时间。&#8220;format&#8221; 可以参看 MySQL 手册。</span></p><p>&nbsp;</p><p><span><span>MySQL （日期、天数）转换函数：to_days(date), from_days(days)<br /></span></span></p><div><pre><span style="color: #0000ff;">select</span> to_days(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">0000-00-00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 0</span> <span style="color: #0000ff;">select</span> to_days(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 733627</span></pre></div><p>&nbsp;</p><p>MySQL （时间、秒）转换函数：time_to_sec(time), sec_to_time(seconds)</p><div><pre><span style="color: #0000ff;">select</span> time_to_sec(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">01:00:05</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 3605</span> <span style="color: #0000ff;">select</span> sec_to_time(<span style="color: #800000; font-weight: bold;">3605</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '01:00:05'</span></pre></div><p>&nbsp;</p><p>MySQL 拼凑日期、时间函数：makdedate(year,dayofyear), maketime(hour,minute,second)</p><div><pre><span style="color: #0000ff;">select</span> makedate(<span style="color: #800000; font-weight: bold;">2001</span>,<span style="color: #800000; font-weight: bold;">31</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2001-01-31'</span> <span style="color: #0000ff;">select</span> makedate(<span style="color: #800000; font-weight: bold;">2001</span>,<span style="color: #800000; font-weight: bold;">32</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2001-02-01'</span> <span style="color: #0000ff;">select</span> maketime(<span style="color: #800000; font-weight: bold;">12</span>,<span style="color: #800000; font-weight: bold;">15</span>,<span style="color: #800000; font-weight: bold;">30</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '12:15:30'</span></pre></div><p>&nbsp;</p><p>MySQL （Unix 时间戳、日期）转换函数</p><div><pre><span style="color: #000000;">unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)</span></pre></div><p><br />下面是示例：</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="color: #0000ff;">select</span> unix_timestamp(); <span style="color: #008080;">--</span><span style="color: #008080;"> 1218290027</span> <span style="color: #0000ff;">select</span> unix_timestamp(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 1218124800</span> <span style="color: #0000ff;">select</span> unix_timestamp(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:30:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 1218169800</span>  <span style="color: #0000ff;">select</span> from_unixtime(<span style="color: #800000; font-weight: bold;">1218290027</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2008-08-09 21:53:47'</span> <span style="color: #0000ff;">select</span> from_unixtime(<span style="color: #800000; font-weight: bold;">1218124800</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2008-08-08 00:00:00'</span> <span style="color: #0000ff;">select</span> from_unixtime(<span style="color: #800000; font-weight: bold;">1218169800</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2008-08-08 12:30:00'</span>  <span style="color: #0000ff;">select</span> from_unixtime(<span style="color: #800000; font-weight: bold;">1218169800</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">%Y %D %M %h:%i:%s %x</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> '2008 8th August 12:30:00 2008'</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>&nbsp;</p><p>&nbsp;</p><h2><strong><span style="font-size: 14pt;">MySQL 日期时间计算函数</span></strong></h2><p>&nbsp;</p><p>MySQL 为日期增加一个时间间隔：date_add()</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="color: #0000ff;">set</span> <span style="color: #008000;">@dt</span> <span style="color: #808080;">=</span><span style="color: #000000;"> now();  </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span> <span style="color: #ff00ff;">day</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> add 1 day</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span> hour); <span style="color: #008080;">--</span><span style="color: #008080;"> add 1 hour</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span> minute); <span style="color: #008080;">--</span><span style="color: #008080;"> ...</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"> second); </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"> microsecond); </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"> week); </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span> <span style="color: #ff00ff;">month</span><span style="color: #000000;">); </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;"> quarter); </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #800000; font-weight: bold;">1</span> <span style="color: #ff00ff;">year</span><span style="color: #000000;">);  </span><span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">1</span> <span style="color: #ff00ff;">day</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> sub 1 day</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>&nbsp;</p><p><span>MySQL adddate(), addtime()函数，可以用 date_add() 来替代。下面是 date_add() 实现 addtime() 功能示例：<br /></span></p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql<span style="color: #808080;">&gt;</span> <span style="color: #0000ff;">set</span> <span style="color: #008000;">@dt</span> <span style="color: #808080;">=</span> <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-09 12:12:33</span><span style="color: #ff0000;">'</span><span style="color: #000000;">;  mysql</span><span style="color: #808080;">&gt;</span><span style="color: #000000;"> mysql</span><span style="color: #808080;">&gt;</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">01:15:30</span><span style="color: #ff0000;">'</span><span style="color: #000000;"> hour_second);  </span><span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------------------------------------------+</span> <span style="color: #808080;">|</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">01:15:30</span><span style="color: #ff0000;">'</span> hour_second) <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------------------------------------------+</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">2008</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">08</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">09</span> <span style="color: #800000; font-weight: bold;">13</span>:<span style="color: #800000; font-weight: bold;">28</span>:<span style="color: #800000; font-weight: bold;">03</span> <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">----------------------------------------------+</span> <span style="color: #000000;"> mysql</span><span style="color: #808080;">&gt;</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">1 01:15:30</span><span style="color: #ff0000;">'</span><span style="color: #000000;"> day_second);  </span><span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------------------------------------+</span> <span style="color: #808080;">|</span> date_add(<span style="color: #008000;">@dt</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">1 01:15:30</span><span style="color: #ff0000;">'</span> day_second) <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------------------------------------+</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">2008</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">08</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">10</span> <span style="color: #800000; font-weight: bold;">13</span>:<span style="color: #800000; font-weight: bold;">28</span>:<span style="color: #800000; font-weight: bold;">03</span> <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">-----------------------------------------------+</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>&nbsp;</p><p><span>MySQL 为日期减去一个时间间隔：date_sub()<br /></span></p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre>mysql<span style="color: #808080;">&gt;</span> <span style="color: #0000ff;">select</span> date_sub(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">1998-01-01 00:00:00</span><span style="color: #ff0000;">'</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">1 1:1:1</span><span style="color: #ff0000;">'</span><span style="color: #000000;"> day_second);  </span><span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------------------+</span> <span style="color: #808080;">|</span> date_sub(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">1998-01-01 00:00:00</span><span style="color: #ff0000;">'</span>, interval <span style="color: #ff0000;">'</span><span style="color: #ff0000;">1 1:1:1</span><span style="color: #ff0000;">'</span> day_second) <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------------------+</span> <span style="color: #808080;">|</span> <span style="color: #800000; font-weight: bold;">1997</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">12</span><span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">30</span> <span style="color: #800000; font-weight: bold;">22</span>:<span style="color: #800000; font-weight: bold;">58</span>:<span style="color: #800000; font-weight: bold;">59</span> <span style="color: #808080;">|</span> <span style="color: #808080;">+</span><span style="color: #008080;">--</span><span style="color: #008080;">--------------------------------------------------------------+</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p><span>MySQL date_sub() 日期时间函数 和 date_add() 用法一致，不再赘述。</span></p><p>&nbsp;</p><p><span><span>MySQL 日期、时间相减函数：datediff(date1,date2), timediff(time1,time2)<br /></span></span></p><div><pre>MySQL <span style="color: #ff00ff;">datediff</span>(date1,date2)：两个日期相减 date1 <span style="color: #808080;">-</span><span style="color: #000000;"> date2，返回天数。 </span><span style="color: #0000ff;">select</span> <span style="color: #ff00ff;">datediff</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-01</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">select</span> <span style="color: #ff00ff;">datediff</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-01</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> -7</span></pre></div><p><span><span>MySQL timediff(time1,time2)：两个日期相减 time1 - time2，返回 time 差值。<br /></span></span></p><div><pre><span style="color: #0000ff;">select</span> timediff(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 08:08:08</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 00:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 08:08:08</span> <span style="color: #0000ff;">select</span> timediff(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">08:08:08</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">00:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 08:08:08</span></pre></div><p><span><span>注意：timediff(time1,time2) 函数的两个参数类型必须相同。</span></span></p><p>&nbsp;</p><p>MySQL 时间戳（timestamp）转换、增、减函数：</p><div><pre><span style="color: #0000ff;">timestamp</span>(date) <span style="color: #008080;">--</span><span style="color: #008080;"> date to timestamp</span> <span style="color: #0000ff;">timestamp</span>(dt,time) <span style="color: #008080;">--</span><span style="color: #008080;"> dt + time</span> timestampadd(unit,interval,datetime_expr) <span style="color: #008080;">-- </span>timestampdiff(unit,datetime_expr1,datetime_expr2) <span style="color: #008080;">--</span></pre></div><p>请看示例部分：</p><div><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div><pre><span style="color: #0000ff;">select</span> <span style="color: #0000ff;">timestamp</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 00:00:00</span> <span style="color: #0000ff;">select</span> <span style="color: #0000ff;">timestamp</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 08:00:00</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">01:01:01</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 09:01:01</span> <span style="color: #0000ff;">select</span> <span style="color: #0000ff;">timestamp</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 08:00:00</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">10 01:01:01</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-18 09:01:01</span>  <span style="color: #0000ff;">select</span> timestampadd(<span style="color: #ff00ff;">day</span>, <span style="color: #800000; font-weight: bold;">1</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 08:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09 08:00:00</span> <span style="color: #0000ff;">select</span> date_add(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 08:00:00</span><span style="color: #ff0000;">'</span>, interval <span style="color: #800000; font-weight: bold;">1</span> <span style="color: #ff00ff;">day</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-09 08:00:00</span> <span style="color: #000000;"> MySQL timestampadd() 函数类似于 date_add()。 </span><span style="color: #0000ff;">select</span> timestampdiff(<span style="color: #ff00ff;">year</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2002-05-01</span><span style="color: #ff0000;">'</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2001-01-01</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> -1</span> <span style="color: #0000ff;">select</span> timestampdiff(<span style="color: #ff00ff;">day</span> ,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2002-05-01</span><span style="color: #ff0000;">'</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2001-01-01</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> -485</span> <span style="color: #0000ff;">select</span> timestampdiff(hour,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>,<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 00:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> -12</span>  <span style="color: #0000ff;">select</span> <span style="color: #ff00ff;">datediff</span>(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-01 00:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 7</span></pre><div><a title="复制代码" href="http://www.cnblogs.com/ggjucheng/p/3352280.html"><img alt="复制代码" src="http://common.cnblogs.com/images/copycode.gif" /></a></div></div><p>MySQL timestampdiff() 函数就比 datediff() 功能强多了，datediff() 只能计算两个日期（date）之间相差的天数。</p><p>&nbsp;</p><h2><strong><span style="font-size: 14pt;">MySQL 时区（timezone）转换函数</span></strong></h2><div><pre><span style="color: #000000;">convert_tz(dt,from_tz,to_tz)  </span><span style="color: #0000ff;">select</span> convert_tz(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">+08:00</span><span style="color: #ff0000;">'</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">+00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 04:00:00</span></pre></div><p><span>时区转换也可以通过 date_add, date_sub, timestampadd 来实现。<br /></span></p><div><pre><span style="color: #0000ff;">select</span> date_add(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>, interval <span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">8</span> hour); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 04:00:00</span> <span style="color: #0000ff;">select</span> date_sub(<span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>, interval <span style="color: #800000; font-weight: bold;">8</span> hour); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 04:00:00</span> <span style="color: #0000ff;">select</span> timestampadd(hour, <span style="color: #808080;">-</span><span style="color: #800000; font-weight: bold;">8</span>, <span style="color: #ff0000;">'</span><span style="color: #ff0000;">2008-08-08 12:00:00</span><span style="color: #ff0000;">'</span>); <span style="color: #008080;">--</span><span style="color: #008080;"> 2008-08-08 04:00:00</span></pre></div><p>&nbsp;</p><p>更多参考&nbsp;<a href="http://www.cnblogs.com/she27/archive/2009/01/16/1377089.html">http://www.cnblogs.com/she27/archive/2009/01/16/1377089.html</a></p></div><img src ="http://www.blogjava.net/xzclog/aggbug/429391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2016-02-22 14:46 <a href="http://www.blogjava.net/xzclog/archive/2016/02/22/429391.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> MySQL数据导出与导入</title><link>http://www.blogjava.net/xzclog/archive/2015/02/09/422827.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Mon, 09 Feb 2015 02:52:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2015/02/09/422827.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/422827.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2015/02/09/422827.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/422827.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/422827.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自：http://blog.chinaunix.net/uid-16844903-id-3411118.html工具mysqlmysqldump应用举例导出导出全库备份到本地的目录mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --ad...&nbsp;&nbsp;<a href='http://www.blogjava.net/xzclog/archive/2015/02/09/422827.html'>阅读全文</a><img src ="http://www.blogjava.net/xzclog/aggbug/422827.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2015-02-09 10:52 <a href="http://www.blogjava.net/xzclog/archive/2015/02/09/422827.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL隔离级别</title><link>http://www.blogjava.net/xzclog/archive/2015/01/15/422248.html</link><dc:creator>xzc</dc:creator><author>xzc</author><pubDate>Thu, 15 Jan 2015 11:57:00 GMT</pubDate><guid>http://www.blogjava.net/xzclog/archive/2015/01/15/422248.html</guid><wfw:comment>http://www.blogjava.net/xzclog/comments/422248.html</wfw:comment><comments>http://www.blogjava.net/xzclog/archive/2015/01/15/422248.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/xzclog/comments/commentRss/422248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xzclog/services/trackbacks/422248.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 事务具有ACID四种特性。但是Isolation并发可能引起如下问题：1.脏读允许读取到未提交的脏数据。2.不可重复读如果你在时间点T1读取了一些记录，在T2时再想重新读取一次同样的这些记录时，这些记录可能已经被改变、或者消失不见。3.幻读解决了不重复读，保证了同一个事务里，查询的结果都是事务开始时的状态（一致性）。但是，如果另一个事务同时提交了新数据，本事务再更新时，就会&#8220;惊奇的&#...&nbsp;&nbsp;<a href='http://www.blogjava.net/xzclog/archive/2015/01/15/422248.html'>阅读全文</a><img src ="http://www.blogjava.net/xzclog/aggbug/422248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xzclog/" target="_blank">xzc</a> 2015-01-15 19:57 <a href="http://www.blogjava.net/xzclog/archive/2015/01/15/422248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>