首页 > MySQL > MySql 那些你不知道的 格式化函数
2009五月29

MySql 那些你不知道的 格式化函数

其实在这之前,书中还有一小节讲的是MySql的一些加密函数和一些流程控制函数。

而因为我很少用到这些东西,并用感觉其他人可能也很少用到(事实也的确如此),

因为很少有人会去用MySql的加密算法来实现一些数据的加密吧?

而流程控制,因为我不是DBA,所以我不认为我会在MySql里面写if语句。所以这个也算了吧。

那么好,这一章还剩下两节我认为还有用的东西,就先来说一下这些特意为格式化数据设计的——MySql 格式化函数吧。

FORMAT(x,y) 函数把大的数值格式化为以逗号间隔的易读的序列:

这个很好理解,毕竟银行或者正规的真正和钱打交道的人都知道,在写金额的时候都是3为一个逗号的,

至少我看是这样的,呵呵。

SELECT FORMAT( 999999.99999, 2 ) , FORMAT( -4444, 6 ) , FORMAT( 9999.345, 2 );
/*
format(999999.99999,2)  format(-4444,6) format(9999.345,2)
1,000,000.00            -4,444.000000   9,999.35
*/

FORMAT(x,y) 把x格式化以逗号分隔开的数字序列,y是结果的小数位数(会四舍五入的哈,看我的代码示例)

DATE_FORMAT(date,fmt) 和TIME_FORMAT(time,fmt)函数可以用来格式化日期和时间值:

这俩函数接受日期或者时间值和一个指定结果格式的格式化字符串。这个格式化字符串包含特殊的符号。用来改变结果值的显示。

SELECT DATE_FORMAT( NOW( ) ,  '%W, %D %M %Y %r' ) , DATE_FORMAT( 19850903,  '%d/%m/%Y' ) , DATE_FORMAT( NOW( ) ,  '%Y-%m-%d %H:%I:%S' );
/*
DATE_FORMAT( NOW( ) , '%W, %D %M %Y %r' )   DATE_FORMAT( 19850903, '%d/%m/%Y' ) DATE_FORMAT( NOW( ) , '%Y-%m-%d %H:%I:%S' )
Friday, 29th May 2009 03:01:01 PM           03/09/1995                          2009-05-29 15:03:01
*/

SELECT TIME_FORMAT( NOW( ) ,  '%s %i %h %d %m %y' ) , TIME_FORMAT( NOW( ) ,  '%h:%i %p' );
/*
time_format(now(),'%s %i %h %d %m %y')  time_format(now(),'%h:%i %p')
55 03 03 00 00 00                       03:03 PM
*/

呃,虽然我只写了两个函数。勉强算写了三个吧,但是其实格式化函数还有其它的。不过个人感觉无用就没有先写了。

嗯,希望见谅。嗯。嘿嘿。。

看了刚才格式化时间和日期的两个函数,DATE_FORMAT(),TIME_FORMAT()是不是一直有个疑问,就是我写的那些个%到底是啥玩意?

也就是其中的参数format到底都是咋写成的呢?

嗯,好吧,我把手册里的内容抄过来。呵呵。

以下说明符可用在 format 字符串中:

说明符 说明
%a 工作日的缩写名称  (Sun..Sat)
%b 月份的缩写名称 (Jan..Dec)
%c 月份,数字形式(0..12)
%D 带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, …)
%d 该月日期, 数字形式 (00..31)
%e 该月日期, 数字形式(0..31)
%f 微秒 (000000..999999)
%H 小时(00..23)
%h 小时(01..12)
%I 小时 (01..12)
%i 分钟,数字形式 (00..59)
%j 一年中的天数 (001..366)
%k 小时 (0..23)
%l 小时 (1..12)
%M 月份名称 (January..December)
%m 月份, 数字形式 (00..12)
%p 上午(AM)或下午( PM
%r 时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AMPM)
%S (00..59)
%s (00..59)
%T 时间 , 24小时制 (小时hh:分钟mm:秒数ss)
%U (00..53), 其中周日为每周的第一天
%u (00..53), 其中周一为每周的第一天
%V (01..53), 其中周日为每周的第一天 ; %X同时使用
%v (01..53), 其中周一为每周的第一天 ; %x同时使用
%W 工作日名称 (周日..周六)
%w 一周中的每日 (0=周日..6=周六)
%X 该周的年份,其中周日为每周的第一天, 数字形式,4位数;%V同时使用
%x 该周的年份,其中周一为每周的第一天, 数字形式,4位数;%v同时使用
%Y 年份, 数字形式,4位数
%y 年份, 数字形式 (2位数)
%% %’文字字符

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/05/29/673/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

本文目前尚无任何评论.

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)