Mysql的DATE_FORMAT()

Mysql的DATE_FORMAT()应用(2011-04-2917:27:58)转载▼

标签:mysqljava时间格式it分类:Programming

今天正好有个做ssh的同学问到时间问题,想显示时间到秒数

自己之前都是使用显示到天的,于是就顺手查了下

碰到一个MYSQL的问题,表中字段的内容是"年-月-日时:分:秒",需要查询匹配“年月日”或“时:分:秒”的数据条目,这个时候就可以通过下面的SQL语句实现:

select*from_tablewheredate_format(_datetime,'%Y%m%d')='20080227'(匹配“年月日”)

select*from_tablewheredate_format(_datetime,'%H:%i:%s')='16:40:01'(匹配“时:分:秒”)

DATE_FORMAT(date,format)能根据格式串format格式化日期或日期和时间值date,返回结果串。可用DATE_FORMAT()来格式化DATE或DATETIME值,以便得到所希望的格式。根据format字符串格式化date值:

%S,%s两位数字形式的秒(00,01,...,59)

%i两位数字形式的分(00,01,...,59)

%H两位数字形式的小时,24小时(00,01,...,23)

%h,%I两位数字形式的小时,12小时(01,02,...,12)

%k数字形式的小时,24小时(0,1,...,23)

%l数字形式的小时,12小时(1,2,...,12)

%T24小时的时间形式(hh:mm:ss)

%r12小时的时间形式(hh:mm:ssAM或hh:mm:ssPM)

%pAM或PM

%W一周中每一天的名称(Sunday,Monday,...,Saturday)

%a一周中每一天名称的缩写(Sun,Mon,...,Sat)

%d两位数字表示月中的天数(00,01,...,31)

%e数字形式表示月中的天数(1,2,...,31)

%D英文后缀表示月中的天数(1st,2nd,3rd,...)

%w以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)

%j以三位数字表示年中的天数(001,002,...,366)

%U周(0,1,52),其中Sunday为周中的第一天

%u周(0,1,52),其中Monday为周中的第一天

%M月名(January,February,...,December)

%b缩写的月名(January,February,...,December)

%m两位数字表示的月份(01,02,...,12)

%c数字表示的月份(1,2,...,12)

%Y四位数字表示的年份

%y两位数字表示的年份

%%直接值“%”

顺便说一下,mysql里date貌似只存到天,而datetime才会存到秒

那个同学一直使用的string来存时间,虽然也可以做但是无论是存取还是比较大小,感觉都会多走一步

更重要的是,varchar的话估计就米法使用date_format()了吧,这个只能作用与date和datetime