最近因为工作需要,要使用mysql查询记录可如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的含义,

所以这篇文章就提供mysql格式换时间函数,可以方便的看到格式化后的时间。有需要的朋友们可以参考借鉴,下面来一起看看吧。

常用:DATE_FORMAT(SJ,'%Y-%c-%d %H:%i:%s') as SJ



1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。



DATE_FORMAT(date,format)


format参数的格式有

%a

缩写星期名

%b

缩写月名

%c

月,数值

%D

带有英文前缀的月中的天

%d

月的天,数值(00-31)

%e

月的天,数值(0-31)

%f

微秒

%H

小时 (00-23)

%h

小时 (01-12)

%I

小时 (01-12)

%i

分钟,数值(00-59)

%j

年的天 (001-366)

%k

小时 (0-23)

%l

小时 (1-12)

%M

月名

%m

月,数值(00-12)

%p

AM 或 PM

%r

时间,12-小时(hh:mm:ss AM 或 PM)

%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 位

例子:





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



2. MySQL 格式化函数 FROM_UNIXTIME()





1



2



3


SELECT          FROM_UNIXTIME(          date          ,          '%Y-%c-%d %h:%i:%s'            )           as          post_date ,          


           date_format(NOW(),          '%Y-%c-%d %h:%i:%s'            )           as          post_date_gmt          


           FROM          `article`           where          outkey =           'Y'



1、FROM_UNIXTIME( unix_timestamp )

参数:一般为10位的时间戳,如:1417363200

YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。




1



2



3



4



5



6



7


mysql>          select          FROM_UNIXTIME(1344887103);          


           +          ---------------------------+         


           | FROM_UNIXTIME(1344887103) |          


           +          ---------------------------+         


           | 2012-08-14 03:45:03  |          


           +          ---------------------------+         


           1 row           in          set            (0.00 sec)



2、FROM_UNIXTIME( unix_timestamp ,format ) 

FROM_UNIXTIME( unix_timestamp ) 中的参数含义一样; 

参数 format : 转换之后的时间字符串显示的格式; 

返回值:按照指定的时间格式显示的字符串;




1



2



3



4



5



6



7



8



9



10



11



12



13



14



15


mysql>          select          FROM_UNIXTIME(1344887103,          '%Y-%M-%D %h:%i:%s'          );         


           +          -----------------------------------------------+         


           | FROM_UNIXTIME(1344887103,          '%Y-%M-%D %h:%i:%s'          ) |          


           +          -----------------------------------------------+         


           | 2012-August-14th 03:45:03      |          


           +          -----------------------------------------------+         


           1 row           in          set            (0.00 sec)          


           mysql>          select          FROM_UNIXTIME(1344887103,          '%Y-%m-%D %h:%i:%s'          );         


           +          -----------------------------------------------+         


           | FROM_UNIXTIME(1344887103,          '%Y-%m-%D %h:%i:%s'          ) |          


           +          -----------------------------------------------+         


           | 2012-08-14th 03:45:03       |          


           +          -----------------------------------------------+         


                     


           1 row           in          set            (0.00 sec)



3、判断是不是同一天:





1



2



3



4



5



6



7



8


SELECT          tbl_gamedata.GameMapName,tbl_playerdata.GameMode, tbl_gamedata.MatchMode, tbl_playerdata.GameResult,          SUM          (tbl_playerdata.GameIsWin)          AS          tday_winCount,          


                     SUM          (tbl_playerdata.AssistCount)          AS          tday_assistCount,          SUM          (tbl_playerdata.KillCount)          AS          tday_killCount,         


                     SUM          (tbl_player_title.ThreeKill)          AS          tday_threeKill,          SUM          (tbl_player_title.FourKill)          AS          tday_fourKill,          SUM          (tbl_player_title.FiveKill)          AS          tday_fiveKill         


                     FROM          tbl_playerdata          


                     LEFT          JOIN            tbl_gamedata           ON          tbl_playerdata.GameID = tbl_gamedata.GameID         


                     LEFT          JOIN            tbl_player_title           ON          tbl_player_title.GameID = tbl_playerdata.GameID           AND          tbl_player_title.PlayerID = tbl_playerdata.PlayerID         


                     WHERE          tbl_playerdata.PlayerID = user_id           AND          (tbl_playerdata.GameResult = 2           OR          tbl_playerdata.GameResult = 3)           AND          TO_DAYS(FROM_UNIXTIME(tbl_playerdata.GameStartTime)) = TO_DAYS(NOW())          


                     GROUP          BY            tbl_gamedata.GameMapName, tbl_playerdata.GameMode,tbl_gamedata.MatchMode,tbl_playerdata.GameResult;


TO_DAYS(FROM_UNIXTIME(tbl_playerdata.GameStartTime)) = TO_DAYS(NOW())

就是我们需要的判断