如果mysql資料庫裡面的某個時間用的是varchar(或者是char)型別的,這樣可以方便系統使用而不用隨便轉換時間型別來適應資料庫版本的不同,當要把取出的字段轉換成時間型別的時候,可以按如下方法操作:
(1)str_to_date
這個函式可以把字串時間完全的翻譯過來
sql語句可以這樣寫:
select str_to_date(`tablename`.`eventtime`,'%y-%m-%d %h:%i:%s') from tablename
資料庫中eventtime的型別是varchar(20),這樣就可以將型別抓換成時間型別。
(2)to_days
就像它的名字一樣,它只能轉換到每一天,就是說一天的時間字串會被轉換成乙個數
**字串型別轉成時間型別,字串值必須滿足2010-10-19 17:08:00模式。
select str_to_date('04/31/2004,13:2:26', '%m/%d/%y,%h:%i:%s');成功。
注意,模式區分大小寫。
select str_to_date('2010 - 10 - 19, 17 : 08', '%y - %m - %d, %h : %i');不成功。
select str_to_date('2010-10-19,17:08', '%y-%m-%d,%h:%i');去除所有空格後成功。
select str_to_date(replace(createtime,' ',''), '%y-%m-%d,%h:%i') from upload;預先顯示轉換結果。符合預期。
正式轉換如下:
update upload set createtime=str_to_date(replace(createtime,' ',''), '%y-%m-%d,%h:%i');
update uzer set createtime=str_to_date(replace(createtime,' ',''), '%y-%m-%d,%h:%i');
update hlog set createtime=str_to_date(replace(createtime,' ',''), '%y-%m-%d,%h:%i');
再將列定義轉為datetime型別。
另外要注意,mysql只精確到秒而已
注:%w 星期名字(sunday……saturday)
%d 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)
%y 年, 數字, 4 位
%y 年, 數字, 2 位
%a 縮寫的星期名字(sun……sat)
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(jan……dec)
%j 一年中的天數(001……366)
%h 小時(00……23)
%k 小時(0……23)
%h 小時(01……12)
%i 小時(01……12)
%l 小時(1……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [ap]m)
%t 時間,24 小時(hh:mm:ss)
%s 秒(00……59)
%s 秒(00……59)
%p am或pm
%w 乙個星期中的天數(0=sunday ……6=saturday )
%u 星期(0……52), 這裡星期天是星期的第一天
%u 星期(0……52), 這裡星期一是星期的第一天
%% 乙個文字「%」。
mysql字串型別 mysql 字串型別
字串型別 字串型別指char varchar binary varbinary blob text enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。型別大小用途 char0 255位元組定長字串 varchar0 65535 位元組變長字串 tinyblob0 255位元組...
時間字串轉換
g 公元時代,例如ad公元 yy 年的後2位 yyyy 完整年 mm 月,顯示為1 12 mmm 月,顯示為英文月份簡寫,如 jan mmmm 月,顯示為英文月份全稱,如 janualy dd 日,2位數表示,如02 d 日,1 2位顯示,如 2 eee 簡寫星期幾,如sun eeee 全寫星期幾,...
mysql時間戳及字串時間等轉換
使用mysql資料庫過程中,經常會遇到時間戳與格式化字串時間 字串時間與date時間等的相互轉換,現將轉換涉及的函式和用法做下彙總,以便查閱.一 函式列表 1.date format date,format 日期格式化函式,用於以不同的格式顯示日期 時間資料 date 引數是合法的日期.format...