mysql中字串和時間互相轉換的方法(自動轉換及DATE_FORMAT函式)
mysql中字串和時間互相轉換的方法(自動轉換及DATE_FORMAT函式)
一、mysql中字串轉換成日期
下面將講述如何在MYSQL中把一個字串轉換成日期:
1、無需轉換的:
SELECT * FROM tairlist_day WHERE rq>'2010-07-31' AND rq<'2010-09-01'
2、使用:DATE_FORMAT.
mysql中,DATE_FORMAT(date, format) 函式根據format字串格式化date值,format字串格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 數字, 4 位
%y 年, 數字, 2 位
%a 縮寫的星期名字(Sun……Sat)
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(Jan……Dec)
%j 一年中的天數(001……366)
%H 小時(00……23)
%k 小時(0……23) %h 小時(01……12)
%I 小時(01……12)
%l 小時(1……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [AP]M)
%T 時間,24 小時(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一個星期中的天數(0=Sunday ……6=Saturday )
%U 星期(0……52), 這裡星期天是星期的第一天
%u 星期(0……52), 這裡星期一是星期的第一天
%% 一個文字“%”。
|
舉例:
把字串轉為日期格式:
1 |
SELECT DATE_FORMAT( '2011-09-20 08:30:45' , '%Y-%m-%d %H:%i:%S' );
|
把日期轉為字串格式:
1 |
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S' );
|
下面的指令碼使用 DATE_FORMAT() 函式來顯示不同的格式。我們使用 NOW() 來獲得當前的日期/時間:
1 2 3 4 |
DATE_FORMAT(NOW(), '%b %d %Y %h:%i %p' )
DATE_FORMAT(NOW(), '%m-%d-%Y' )
DATE_FORMAT(NOW(), '%d %b %y' )
DATE_FORMAT(NOW(), '%d %b %Y %T:%f' )
|
結果類似:
1 2 3 4 |
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
|
1 |
SELECT * FROM tairlist_day WHERE DATE_FORMAT( rq, '%Y-%m-%d' )> '2010-08-01' AND DATE_FORMAT( rq, '%Y-%m-%d' )< '2010-08-03'
|
其中第1要在一個“寬鬆”的語法是被允許的:以任何標點符號作為日期部分和時間部分中的定界符,如:
一個 YYYYMMDD 或 YYMMDD 格式的數字,只要數字看起來像是一個日期。例如,19830905 和 830905 被解釋成為 '1983-09-05 '。
二、mysql中日期轉換成字串
1 2 3 4 5 6 7 |
mysql> select date_format(now(), '%Y' );
+ -------------------------+
| date_format(now(), '%Y' ) |
+ -------------------------+
| 2009 |
+ -------------------------+
1 row in set (0.00 sec)
|
擴充套件:
%Y:年
%c:月
%d:日
%H:小時
%i:分鐘
%s:秒