MYSQL 鑾峰彇褰撳墠鏃ユ湡鍙婃棩鏈熸牸寮?br /> 鑾峰彇緋葷粺鏃ユ湡錛?NOW()
鏍煎紡鍖栨棩鏈燂細 DATE_FORMAT(date, format)
娉細 date錛氭椂闂村瓧孌?br />format錛氭棩鏈熸牸寮?/p>
榪斿洖緋葷粺鏃ユ湡,杈撳嚭 2009-12-25 14:38:59
select now();
杈撳嚭 09-12-25
select date_format(now(),'%y-%m-%d');
鏍規嵁format瀛楃涓叉牸寮忓寲date鍊?
%S, %s 涓や綅鏁板瓧褰㈠紡鐨勭錛?00,01, ..., 59錛?br />%I, %i 涓や綅鏁板瓧褰㈠紡鐨勫垎錛?00,01, ..., 59錛?br />%H 涓や綅鏁板瓧褰㈠紡鐨勫皬鏃訛紝24 灝忔椂錛?0,01, ..., 23錛?br />%h 涓や綅鏁板瓧褰㈠紡鐨勫皬鏃訛紝12 灝忔椂錛?1,02, ..., 12錛?br />%k 鏁板瓧褰㈠紡鐨勫皬鏃訛紝24 灝忔椂錛?,1, ..., 23錛?br />%l 鏁板瓧褰㈠紡鐨勫皬鏃訛紝12 灝忔椂錛?, 2, ..., 12錛?br />%T 24 灝忔椂鐨勬椂闂村艦寮忥紙hh:mm:ss錛?br />%r 12 灝忔椂鐨勬椂闂村艦寮忥紙hh:mm:ss AM 鎴杊h:mm:ss PM錛?br />%p AM鎴朠M
%W 涓鍛ㄤ腑姣忎竴澶╃殑鍚嶇О錛圫unday, Monday, ..., Saturday錛?br />%a 涓鍛ㄤ腑姣忎竴澶╁悕縐扮殑緙╁啓錛圫un, 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 鏈堝悕錛圝anuary, February, ..., December錛?br />%b 緙╁啓鐨勬湀鍚嶏紙 January, February,...., December錛?br />%m 涓や綅鏁板瓧琛ㄧず鐨勬湀浠斤紙01, 02, ..., 12錛?br />%c 鏁板瓧琛ㄧず鐨勬湀浠斤紙1, 2, ...., 12錛?br />%Y 鍥涗綅鏁板瓧琛ㄧず鐨勫勾浠?br />%y 涓や綅鏁板瓧琛ㄧず鐨勫勾浠?br />%% 鐩存帴鍊?#8220;%”
curdate錛堬級
MySQL 鑾峰緱褰撳墠鏃ユ湡鏃墮棿 鍑芥暟
1.1 鑾峰緱褰撳墠鏃ユ湡+鏃墮棿錛坉ate + time錛夊嚱鏁幫細now()
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2008-08-08 22:20:46 |
+---------------------+
闄や簡 now() 鍑芥暟鑳借幏寰楀綋鍓嶇殑鏃ユ湡鏃墮棿澶栵紝MySQL 涓繕鏈変笅闈㈢殑鍑芥暟錛?br />
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
榪欎簺鏃ユ湡鏃墮棿鍑芥暟錛岄兘絳夊悓浜?now()銆傞壌浜?now() 鍑芥暟綆鐭槗璁幫紝寤鴻鎬繪槸浣跨敤 now() 鏉ユ浛浠d笂闈㈠垪鍑虹殑鍑芥暟銆?br />
1.2 鑾峰緱褰撳墠鏃ユ湡+鏃墮棿錛坉ate + time錛夊嚱鏁幫細sysdate()
sysdate() 鏃ユ湡鏃墮棿鍑芥暟璺?now() 綾諱技錛屼笉鍚屼箣澶勫湪浜庯細now() 鍦ㄦ墽琛屽紑濮嬫椂鍊煎氨寰楀埌浜嗭紝 sysdate() 鍦ㄥ嚱鏁版墽琛屾椂鍔ㄦ佸緱鍒板箋傜湅涓嬮潰鐨勪緥瀛愬氨鏄庣櫧浜嗭細
mysql> select now(), sleep(3), now();
+---------------------+----------+---------------------+
| now() | sleep(3) | now() |
+---------------------+----------+---------------------+
| 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |
+---------------------+----------+---------------------+mysql> select sysdate(), sleep(3), sysdate();
+---------------------+----------+---------------------+
| sysdate() | sleep(3) | sysdate() |
+---------------------+----------+---------------------+
| 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 |
+---------------------+----------+---------------------+
鍙互鐪嬪埌錛岃櫧鐒朵腑閫?sleep 3 縐掞紝浣?now() 鍑芥暟涓ゆ鐨勬椂闂村兼槸鐩稿悓鐨勶紱 sysdate() 鍑芥暟涓ゆ寰楀埌鐨勬椂闂村肩浉宸?3縐掋侻ySQL Manual 涓槸榪欐牱鎻忚堪 sysdate() 鐨勶細Return the time at which the functionexecutes銆?br />
sysdate() 鏃ユ湡鏃墮棿鍑芥暟錛屼竴鑸儏鍐典笅寰堝皯鐢ㄥ埌銆?br />
2. 鑾峰緱褰撳墠鏃ユ湡錛坉ate錛夊嚱鏁幫細curdate()
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2008-08-08 |
+------------+
鍏朵腑錛屼笅闈㈢殑涓や釜鏃ユ湡鍑芥暟絳夊悓浜?curdate()錛?br />
current_date()
,current_date
3. 鑾峰緱褰撳墠鏃墮棿錛坱ime錛夊嚱鏁幫細curtime()
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 22:41:30 |
+-----------+
鍏朵腑錛屼笅闈㈢殑涓や釜鏃墮棿鍑芥暟絳夊悓浜?curtime()錛?br />
current_time()
,current_time
4. 鑾峰緱褰撳墠 UTC 鏃ユ湡鏃墮棿鍑芥暟錛歶tc_date(), utc_time(), utc_timestamp()
mysql> select utc_timestamp(), utc_date(), utc_time(), now()
+---------------------+------------+------------+---------------------+
| utc_timestamp() | utc_date() | utc_time() | now() |
+---------------------+------------+------------+---------------------+
| 2008-08-08 14:47:11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |
+---------------------+------------+------------+---------------------+
鍥犱負鎴戝浗浣嶄簬涓滃叓鏃跺尯錛屾墍浠ユ湰鍦版椂闂?= UTC 鏃墮棿 + 8 灝忔椂銆俇TC 鏃墮棿鍦ㄤ笟鍔℃秹鍙婂涓浗瀹跺拰鍦板尯鐨勬椂鍊欙紝闈炲父鏈夌敤銆?br />
浜屻丮ySQL 鏃ユ湡鏃墮棿 Extract錛堥夊彇錛?鍑芥暟銆?br />1. 閫夊彇鏃ユ湡鏃墮棿鐨勫悇涓儴鍒嗭細鏃ユ湡銆佹椂闂淬佸勾銆佸搴︺佹湀銆佹棩銆佸皬鏃躲佸垎閽熴佺銆佸井縐?br />
set @dt = '2008-09-10 07:15:30.123456';
select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456
2. MySQL Extract() 鍑芥暟錛屽彲浠ヤ笂闈㈠疄鐜扮被浼肩殑鍔熻兘錛?br />
set @dt = '2008-09-10 07:15:30.123456';
select extract(year from @dt); -- 2008
select extract(quarter from @dt); -- 3
select extract(month from @dt); -- 9
select extract(week from @dt); -- 36
select extract(day from @dt); -- 10
select extract(hour from @dt); -- 7
select extract(minute from @dt); -- 15
select extract(second from @dt); -- 30
select extract(microsecond from @dt); -- 123456select extract(year_month from @dt); -- 200809
select extract(day_hour from @dt); -- 1007
select extract(day_minute from @dt); -- 100715
select extract(day_second from @dt); -- 10071530
select extract(day_microsecond from @dt); -- 10071530123456
select extract(hour_minute from @dt); -- 715
select extract(hour_second from @dt); -- 71530
select extract(hour_microsecond from @dt); -- 71530123456
select extract(minute_second from @dt); -- 1530
select extract(minute_microsecond from @dt); -- 1530123456
select extract(second_microsecond from @dt); -- 30123456
MySQLExtract() 鍑芥暟闄や簡娌℃湁date(),time() 鐨勫姛鑳藉錛屽叾浠栧姛鑳戒竴搴斿叿鍏ㄣ傚茍涓旇繕鍏鋒湁閫夊彇‘day_microsecond’絳夊姛鑳姐傛敞鎰忚繖閲屼笉鏄彧閫夊彇 day 鍜?microsecond錛岃屾槸浠庢棩鏈熺殑 day 閮ㄥ垎涓鐩撮夊彇鍒?microsecond 閮ㄥ垎銆傚寮烘倣鐨勫惂錛?br />
MySQL Extract() 鍑芥暟鍞竴涓嶅ソ鐨勫湴鏂瑰湪浜庯細浣犻渶瑕佸鏁插嚑嬈¢敭鐩樸?br />
3. MySQL dayof… 鍑芥暟錛歞ayofweek(), dayofmonth(), dayofyear()
鍒嗗埆榪斿洖鏃ユ湡鍙傛暟錛屽湪涓鍛ㄣ佷竴鏈堛佷竴騫翠腑鐨勪綅緗?br />
set @dt = '2008-08-08';
select dayofweek(@dt); -- 6
select dayofmonth(@dt); -- 8
select dayofyear(@dt); -- 221
鏃ユ湡 ‘2008-08-08′ 鏄竴鍛ㄤ腑鐨勭 6 澶╋紙1 = Sunday, 2 = Monday, …, 7 = Saturday錛夛紱涓鏈堜腑鐨勭 8 澶╋紱涓騫翠腑鐨勭 221 澶┿?br />
4. MySQL week… 鍑芥暟錛歸eek(), weekofyear(), dayofweek(), weekday(), yearweek()
set @dt = '2008-08-08';
select week(@dt); -- 31
select week(@dt,3); -- 32
select weekofyear(@dt); -- 32
select dayofweek(@dt); -- 6
select weekday(@dt); -- 4
select yearweek(@dt); -- 200831
MySQL week() 鍑芥暟錛屽彲浠ユ湁涓や釜鍙傛暟錛屽叿浣撳彲鐪嬫墜鍐屻?weekofyear() 鍜?week() 涓鏍鳳紝閮芥槸璁$畻“鏌愬ぉ”鏄綅浜庝竴騫翠腑鐨勭鍑犲懆銆?weekofyear(@dt) 絳変環浜?week(@dt,3)銆?br />
MySQLweekday() 鍑芥暟鍜?dayofweek() 綾諱技錛岄兘鏄繑鍥?#8220;鏌愬ぉ”鍦ㄤ竴鍛ㄤ腑鐨勪綅緗備笉鍚岀偣鍦ㄤ簬鍙傝冪殑鏍囧噯錛?weekday錛?0 =Monday, 1 = Tuesday, …, 6 = Sunday)錛?dayofweek錛氾紙1 = Sunday, 2 = Monday,…, 7 = Saturday錛?br />
MySQL yearweek() 鍑芥暟錛岃繑鍥?year(2008) + week 浣嶇疆(31)銆?br />
5. MySQL 榪斿洖鏄熸湡鍜屾湀浠藉悕縐板嚱鏁幫細dayname(), monthname()
set @dt = '2008-08-08';
select dayname(@dt); -- Friday
select monthname(@dt); -- August
鎬濊冿紝濡備綍榪斿洖涓枃鐨勫悕縐板憿錛?br />
6. MySQL last_day() 鍑芥暟錛氳繑鍥炴湀浠戒腑鐨勬渶鍚庝竴澶┿?br />
select last_day('2008-02-01'); -- 2008-02-29
select last_day('2008-08-08'); -- 2008-08-31
MySQL last_day() 鍑芥暟闈炲父鏈夌敤錛屾瘮濡傛垜鎯沖緱鍒板綋鍓嶆湀浠戒腑鏈夊灝戝ぉ錛屽彲浠ヨ繖鏍鋒潵璁$畻錛?br />
mysql> select now(), day(last_day(now())) as days;
+---------------------+------+
| now() | days |
+---------------------+------+
| 2008-08-09 11:45:45 | 31 |
+---------------------+------+ 涓夈丮ySQL 鏃ユ湡鏃墮棿璁$畻鍑芥暟
1. MySQL 涓烘棩鏈熷鍔犱竴涓椂闂撮棿闅旓細date_add()
set @dt = now();
select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);select date_add(@dt, interval -1 day); -- sub 1 day
MySQL adddate(), addtime()鍑芥暟錛屽彲浠ョ敤 date_add() 鏉ユ浛浠c備笅闈㈡槸 date_add() 瀹炵幇 addtime() 鍔熻兘紺轟緥錛?br />
mysql> set @dt = '2008-08-09 12:12:33';
mysql>
mysql> select date_add(@dt, interval '01:15:30' hour_second);
+------------------------------------------------+
| date_add(@dt, interval '01:15:30' hour_second) |
+------------------------------------------------+
| 2008-08-09 13:28:03 |
+------------------------------------------------+mysql> select date_add(@dt, interval '1 01:15:30' day_second);
+-------------------------------------------------+
| date_add(@dt, interval '1 01:15:30' day_second) |
+-------------------------------------------------+
| 2008-08-10 13:28:03 |
+-------------------------------------------------+
date_add() 鍑芥暟錛屽垎鍒負 @dt 澧炲姞浜?#8220;1灝忔椂 15鍒?30縐?#8221; 鍜?“1澶?1灝忔椂 15鍒?30縐?#8221;銆傚緩璁細鎬繪槸浣跨敤 date_add() 鏃ユ湡鏃墮棿鍑芥暟鏉ユ浛浠?adddate(), addtime()銆?br />
2. MySQL 涓烘棩鏈熷噺鍘諱竴涓椂闂撮棿闅旓細date_sub()
mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);
+----------------------------------------------------------------+
| date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) |
+----------------------------------------------------------------+
| 1997-12-30 22:58:59 |
+----------------------------------------------------------------+
MySQL date_sub() 鏃ユ湡鏃墮棿鍑芥暟 鍜?date_add() 鐢ㄦ硶涓鑷達紝涓嶅啀璧樿堪銆傚彟澶栵紝MySQL 涓繕鏈変袱涓嚱鏁?subdate(), subtime()錛屽緩璁紝鐢?date_sub() 鏉ユ浛浠c?br />
3. MySQL 鍙︾被鏃ユ湡鍑芥暟錛歱eriod_add(P,N), period_diff(P1,P2)
鍑芥暟鍙傛暟“P” 鐨勬牸寮忎負“YYYYMM” 鎴栬?“YYMM”錛岀浜屼釜鍙傛暟“N” 琛ㄧず澧炲姞鎴栧噺鍘?N month錛堟湀錛夈?br />
MySQL period_add(P,N)錛氭棩鏈熷姞/鍑忓幓N鏈堛?br />
mysql> select period_add(200808,2), period_add(20080808,-2)
+----------------------+-------------------------+
| period_add(200808,2) | period_add(20080808,-2) |
+----------------------+-------------------------+
| 200810 | 20080806 |
+----------------------+-------------------------+
MySQL period_diff(P1,P2)錛氭棩鏈?P1-P2錛岃繑鍥?N 涓湀銆?br />
mysql> select period_diff(200808, 200801);
+-----------------------------+
| period_diff(200808, 200801) |
+-----------------------------+
| 7 |
+-----------------------------+
鍦?MySQL 涓紝榪欎袱涓棩鏈熷嚱鏁幫紝涓鑸儏鍐典笅寰堝皯鐢ㄥ埌銆?br />
4. MySQL 鏃ユ湡銆佹椂闂寸浉鍑忓嚱鏁幫細datediff(date1,date2), timediff(time1,time2)
MySQL datediff(date1,date2)錛氫袱涓棩鏈熺浉鍑?date1 - date2錛岃繑鍥炲ぉ鏁般?br />
select datediff('2008-08-08', '2008-08-01'); -- 7
select datediff('2008-08-01', '2008-08-08'); -- -7
MySQL timediff(time1,time2)錛氫袱涓棩鏈熺浉鍑?time1 - time2錛岃繑鍥?time 宸箋?br />
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08
select timediff('08:08:08', '00:00:00'); -- 08:08:08
娉ㄦ剰錛歵imediff(time1,time2) 鍑芥暟鐨勪袱涓弬鏁扮被鍨嬪繀欏葷浉鍚屻?br />
鍥涖丮ySQL 鏃ユ湡杞崲鍑芥暟銆佹椂闂磋漿鎹㈠嚱鏁?br />1. MySQL 錛堟椂闂淬佺錛夎漿鎹㈠嚱鏁幫細time_to_sec(time), sec_to_time(seconds)
select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605); -- '01:00:05'
2. MySQL 錛堟棩鏈熴佸ぉ鏁幫級杞崲鍑芥暟錛歵o_days(date), from_days(days)
select to_days('0000-00-00'); -- 0
select to_days('2008-08-08'); -- 733627select from_days(0); -- '0000-00-00'
select from_days(733627); -- '2008-08-08'
3. MySQL Str to Date 錛堝瓧絎︿覆杞崲涓烘棩鏈燂級鍑芥暟錛歴tr_to_date(str, format)
select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09
select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09
select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09
select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30
select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30
鍙互鐪嬪埌錛宻tr_to_date(str,format) 杞崲鍑芥暟錛屽彲浠ユ妸涓浜涙潅涔辨棤绔犵殑瀛楃涓茶漿鎹負鏃ユ湡鏍煎紡銆傚彟澶栵紝瀹冧篃鍙互杞崲涓烘椂闂淬?#8220;format” 鍙互鍙傜湅 MySQL 鎵嬪唽銆?br />
4. MySQL Date/Time to Str錛堟棩鏈?鏃墮棿杞崲涓哄瓧絎︿覆錛夊嚱鏁幫細date_format(date,format), time_format(time,format)
mysql> select date_format('2008-08-08 22:23:00', '%W %M %Y');
+------------------------------------------------+
| date_format('2008-08-08 22:23:00', '%W %M %Y') |
+------------------------------------------------+
| Friday August 2008 |
+------------------------------------------------+mysql> select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s');
+----------------------------------------------------+
| date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s') |
+----------------------------------------------------+
| 20080808222301 |
+----------------------------------------------------+mysql> select time_format('22:23:01', '%H.%i.%s');
+-------------------------------------+
| time_format('22:23:01', '%H.%i.%s') |
+-------------------------------------+
| 22.23.01 |
+-------------------------------------+
MySQL 鏃ユ湡銆佹椂闂磋漿鎹㈠嚱鏁幫細date_format(date,format), time_format(time,format) 鑳藉鎶婁竴涓棩鏈?鏃墮棿杞崲鎴愬悇縐嶅悇鏍風殑瀛楃涓叉牸寮忋傚畠鏄?str_to_date(str,format) 鍑芥暟鐨?涓涓嗚漿鎹€?br />
5. MySQL 鑾峰緱鍥藉鍦板尯鏃墮棿鏍煎紡鍑芥暟錛歡et_format()
MySQL get_format() 璇硶錛?br />
get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal'
MySQL get_format() 鐢ㄦ硶鐨勫叏閮ㄧず渚嬶細
select get_format(date,'usa') ; -- '%m.%d.%Y'
select get_format(date,'jis') ; -- '%Y-%m-%d'
select get_format(date,'iso') ; -- '%Y-%m-%d'
select get_format(date,'eur') ; -- '%d.%m.%Y'
select get_format(date,'internal') ; -- '%Y%m%d'
select get_format(datetime,'usa') ; -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'jis') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'iso') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'eur') ; -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'internal') ; -- '%Y%m%d%H%i%s'
select get_format(time,'usa') ; -- '%h:%i:%s %p'
select get_format(time,'jis') ; -- '%H:%i:%s'
select get_format(time,'iso') ; -- '%H:%i:%s'
select get_format(time,'eur') ; -- '%H.%i.%s'
select get_format(time,'internal') ; -- '%H%i%s'
MySQL get_format() 鍑芥暟鍦ㄥ疄闄呬腑鐢ㄥ埌鏈轟細鐨勬瘮杈冨皯銆?br />
6. MySQL 鎷煎噾鏃ユ湡銆佹椂闂村嚱鏁幫細makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2001,31); -- '2001-01-31'
select makedate(2001,32); -- '2001-02-01'select maketime(12,15,30); -- '12:15:30' 浜斻丮ySQL 鏃墮棿鎴籌紙Timestamp錛夊嚱鏁?br />1. MySQL 鑾峰緱褰撳墠鏃墮棿鎴沖嚱鏁幫細current_timestamp, current_timestamp()
mysql> select current_timestamp, current_timestamp();
+---------------------+---------------------+
| current_timestamp | current_timestamp() |
+---------------------+---------------------+
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+---------------------+---------------------+
2. MySQL 錛圲nix 鏃墮棿鎴熾佹棩鏈燂級杞崲鍑芥暟錛?br />
unix_timestamp(),
unix_timestamp(date),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp,format)
涓嬮潰鏄ず渚嬶細
select unix_timestamp(); -- 1218290027
select unix_timestamp('2008-08-08'); -- 1218124800
select unix_timestamp('2008-08-08 12:30:00'); -- 1218169800select from_unixtime(1218290027); -- '2008-08-09 21:53:47'
select from_unixtime(1218124800); -- '2008-08-08 00:00:00'
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'
3. MySQL 鏃墮棿鎴籌紙timestamp錛夎漿鎹€佸銆佸噺鍑芥暟錛?br />
timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2) --
璇風湅紺轟緥閮ㄥ垎錛?br />
select timestamp('2008-08-08'); -- 2008-08-08 00:00:00
select timestamp('2008-08-08 08:00:00', '01:01:01'); -- 2008-08-08 09:01:01
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
select date_add('2008-08-08 08:00:00', interval 1 day); -- 2008-08-09 08:00:00
MySQL timestampadd() 鍑芥暟綾諱技浜?date_add()銆?br />
select timestampdiff(year,'2002-05-01','2001-01-01'); -- -1
select timestampdiff(day ,'2002-05-01','2001-01-01'); -- -485
select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -12
select datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00'); -- 7
MySQL timestampdiff() 鍑芥暟灝辨瘮 datediff() 鍔熻兘寮哄浜嗭紝datediff() 鍙兘璁$畻涓や釜鏃ユ湡錛坉ate錛変箣闂寸浉宸殑澶╂暟銆?br />
鍏丮ySQL 鏃跺尯錛坱imezone錛夎漿鎹㈠嚱鏁癱onvert_tz(dt,from_tz,to_tz)selectconvert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-0804:00:00
鏃跺尯杞崲涔熷彲浠ラ氳繃 date_add, date_sub, timestampadd 鏉ュ疄鐜般?br />
select date_add('2008-08-08 12:00:00', interval -8 hour); -- 2008-08-08 04:00:00
select date_sub('2008-08-08 12:00:00', interval 8 hour); -- 2008-08-08 04:00:00
select timestampadd(hour, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00:00
鑾峰緱褰撳墠鏃ユ湡+鏃墮棿錛坉ate + time錛夊嚱鏁幫細now()
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+
鑾峰緱褰撳墠鏃ユ湡+鏃墮棿錛坉ate + time錛夊嚱鏁幫細sysdate()
sysdate() 鏃ユ湡鏃墮棿鍑芥暟璺?now() 綾諱技錛屼笉鍚屼箣澶勫湪浜庯細now() 鍦ㄦ墽琛屽紑濮嬫椂鍊煎氨寰楀埌浜嗭紝 sysdate() 鍦ㄥ嚱鏁版墽琛屾椂鍔ㄦ佸緱鍒板箋傜湅涓嬮潰鐨勪緥瀛愬氨鏄庣櫧浜嗭細
mysql> select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 | +---------------------+----------+---------------------+
sysdate() 鏃ユ湡鏃墮棿鍑芥暟錛屼竴鑸儏鍐典笅寰堝皯鐢ㄥ埌銆?/p>
MySQL 鑾峰緱褰撳墠鏃墮棿鎴沖嚱鏁幫細current_timestamp, current_timestamp()
mysql> select current_timestamp, current_timestamp(); +---------------------+---------------------+ | current_timestamp | current_timestamp() | +---------------------+---------------------+ | 2008-08-09 23:22:24 | 2008-08-09 23:22:24 | +---------------------+---------------------+
MySQL Date/Time to Str錛堟棩鏈?鏃墮棿杞崲涓哄瓧絎︿覆錛夊嚱鏁幫細date_format(date,format), time_format(time,format)
mysql> select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s'); +----------------------------------------------------+ | date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s') | +----------------------------------------------------+ | 20080808222301 | +----------------------------------------------------+
MySQL 鏃ユ湡銆佹椂闂磋漿鎹㈠嚱鏁幫細date_format(date,format), time_format(time,format) 鑳藉鎶婁竴涓棩鏈?鏃墮棿杞崲鎴愬悇縐嶅悇鏍風殑瀛楃涓叉牸寮忋傚畠鏄?str_to_date(str,format) 鍑芥暟鐨?涓涓嗚漿鎹€?/p>
MySQL Str to Date 錛堝瓧絎︿覆杞崲涓烘棩鏈燂級鍑芥暟錛歴tr_to_date(str, format)
select str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09 select str_to_date('08/09/08' , '%m/%d/%y'); -- 2008-08-09 select str_to_date('08.09.2008', '%m.%d.%Y'); -- 2008-08-09 select str_to_date('08:09:30', '%h:%i:%s'); -- 08:09:30 select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30
鍙互鐪嬪埌錛宻tr_to_date(str,format) 杞崲鍑芥暟錛屽彲浠ユ妸涓浜涙潅涔辨棤绔犵殑瀛楃涓茶漿鎹負鏃ユ湡鏍煎紡銆傚彟澶栵紝瀹冧篃鍙互杞崲涓烘椂闂淬?#8220;format” 鍙互鍙傜湅 MySQL 鎵嬪唽銆?/span>
MySQL 錛堟棩鏈熴佸ぉ鏁幫級杞崲鍑芥暟錛歵o_days(date), from_days(days)
select to_days('0000-00-00'); -- 0 select to_days('2008-08-08'); -- 733627
MySQL 錛堟椂闂淬佺錛夎漿鎹㈠嚱鏁幫細time_to_sec(time), sec_to_time(seconds)
select time_to_sec('01:00:05'); -- 3605 select sec_to_time(3605); -- '01:00:05'
MySQL 鎷煎噾鏃ユ湡銆佹椂闂村嚱鏁幫細makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2001,31); -- '2001-01-31' select makedate(2001,32); -- '2001-02-01' select maketime(12,15,30); -- '12:15:30'
MySQL 錛圲nix 鏃墮棿鎴熾佹棩鏈燂級杞崲鍑芥暟
unix_timestamp(), unix_timestamp(date), from_unixtime(unix_timestamp), from_unixtime(unix_timestamp,format)
涓嬮潰鏄ず渚嬶細
select unix_timestamp(); -- 1218290027 select unix_timestamp('2008-08-08'); -- 1218124800 select unix_timestamp('2008-08-08 12:30:00'); -- 1218169800 select from_unixtime(1218290027); -- '2008-08-09 21:53:47' select from_unixtime(1218124800); -- '2008-08-08 00:00:00' select from_unixtime(1218169800); -- '2008-08-08 12:30:00' select from_unixtime(1218169800, '%Y %D %M %h:%i:%s %x'); -- '2008 8th August 12:30:00 2008'
MySQL 涓烘棩鏈熷鍔犱竴涓椂闂撮棿闅旓細date_add()
set @dt = now(); select date_add(@dt, interval 1 day); -- add 1 day select date_add(@dt, interval 1 hour); -- add 1 hour select date_add(@dt, interval 1 minute); -- ... select date_add(@dt, interval 1 second); select date_add(@dt, interval 1 microsecond); select date_add(@dt, interval 1 week); select date_add(@dt, interval 1 month); select date_add(@dt, interval 1 quarter); select date_add(@dt, interval 1 year); select date_add(@dt, interval -1 day); -- sub 1 day
MySQL adddate(), addtime()鍑芥暟錛屽彲浠ョ敤 date_add() 鏉ユ浛浠c備笅闈㈡槸 date_add() 瀹炵幇 addtime() 鍔熻兘紺轟緥錛?br />
mysql> set @dt = '2008-08-09 12:12:33'; mysql> mysql> select date_add(@dt, interval '01:15:30' hour_second); +------------------------------------------------+ | date_add(@dt, interval '01:15:30' hour_second) | +------------------------------------------------+ | 2008-08-09 13:28:03 | +------------------------------------------------+ mysql> select date_add(@dt, interval '1 01:15:30' day_second); +-------------------------------------------------+ | date_add(@dt, interval '1 01:15:30' day_second) | +-------------------------------------------------+ | 2008-08-10 13:28:03 | +-------------------------------------------------+
MySQL 涓烘棩鏈熷噺鍘諱竴涓椂闂撮棿闅旓細date_sub()
mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second); +----------------------------------------------------------------+ | date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) | +----------------------------------------------------------------+ | 1997-12-30 22:58:59 | +----------------------------------------------------------------+
MySQL date_sub() 鏃ユ湡鏃墮棿鍑芥暟 鍜?date_add() 鐢ㄦ硶涓鑷達紝涓嶅啀璧樿堪銆?/span>
MySQL 鏃ユ湡銆佹椂闂寸浉鍑忓嚱鏁幫細datediff(date1,date2), timediff(time1,time2)
MySQL datediff(date1,date2)錛氫袱涓棩鏈熺浉鍑?date1 - date2錛岃繑鍥炲ぉ鏁般?select datediff('2008-08-08', '2008-08-01'); -- 7 select datediff('2008-08-01', '2008-08-08'); -- -7
MySQL timediff(time1,time2)錛氫袱涓棩鏈熺浉鍑?time1 - time2錛岃繑鍥?time 宸箋?br />
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08 select timediff('08:08:08', '00:00:00'); -- 08:08:08
娉ㄦ剰錛歵imediff(time1,time2) 鍑芥暟鐨勪袱涓弬鏁扮被鍨嬪繀欏葷浉鍚屻?/span>
MySQL 鏃墮棿鎴籌紙timestamp錛夎漿鎹€佸銆佸噺鍑芥暟錛?/p>
timestamp(date) -- date to timestamp timestamp(dt,time) -- dt + time timestampadd(unit,interval,datetime_expr) -- timestampdiff(unit,datetime_expr1,datetime_expr2) --
璇風湅紺轟緥閮ㄥ垎錛?/p>
select timestamp('2008-08-08'); -- 2008-08-08 00:00:00 select timestamp('2008-08-08 08:00:00', '01:01:01'); -- 2008-08-08 09:01:01 select timestamp('2008-08-08 08:00:00', '10 01:01:01'); -- 2008-08-18 09:01:01 select timestampadd(day, 1, '2008-08-08 08:00:00'); -- 2008-08-09 08:00:00 select date_add('2008-08-08 08:00:00', interval 1 day); -- 2008-08-09 08:00:00 MySQL timestampadd() 鍑芥暟綾諱技浜?date_add()銆?select timestampdiff(year,'2002-05-01','2001-01-01'); -- -1 select timestampdiff(day ,'2002-05-01','2001-01-01'); -- -485 select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00'); -- -12 select datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00'); -- 7
MySQL timestampdiff() 鍑芥暟灝辨瘮 datediff() 鍔熻兘寮哄浜嗭紝datediff() 鍙兘璁$畻涓や釜鏃ユ湡錛坉ate錛変箣闂寸浉宸殑澶╂暟銆?/p>
convert_tz(dt,from_tz,to_tz) select convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00
鏃跺尯杞崲涔熷彲浠ラ氳繃 date_add, date_sub, timestampadd 鏉ュ疄鐜般?br />
select date_add('2008-08-08 12:00:00', interval -8 hour); -- 2008-08-08 04:00:00 select date_sub('2008-08-08 12:00:00', interval 8 hour); -- 2008-08-08 04:00:00 select timestampadd(hour, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00:00
鏇村鍙傝?nbsp;http://www.cnblogs.com/she27/archive/2009/01/16/1377089.html