Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 189|回复: 0

[默认分类] mysql格式化日期

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-9 13:53:49 | 显示全部楼层 |阅读模式
    mysql查询记录如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的含义,现提供mysql格式换时间函数,可以方便的看到格式化后的时间。
    1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

    1. 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. DATE_FORMAT(NOW(),"%b %d %Y %h:%i %p")  
    2. DATE_FORMAT(NOW(),"%m-%d-%Y")  
    3. DATE_FORMAT(NOW(),"%d %b %y")  
    4. DATE_FORMAT(NOW(),"%d %b %Y %T:%f")
    复制代码

    输出结果:

    1. Dec 29 2008 11:45 PM  
    2. 12-29-2008  
    3. 29 Dec 08  
    4. 29 Dec 2008 16:25:46
    复制代码

    2. MySQL 格式化函数 FROM_UNIXTIME()

    1. SELECT FROM_UNIXTIME(date, "%Y-%c-%d %h:%i:%s" ) as post_date ,   
    2. date_format(NOW(), "%Y-%c-%d %h:%i:%s" ) as post_date_gmt   
    3. FROM `article`  where outkey = "Y"
    复制代码

    1、FROM_UNIXTIME( unix_timestamp )
      参数:一般为10位的时间戳,如:1417363200
      返回值:有两种,可能是类似 "YYYY-MM-DD HH:MM:SS" 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。

    1. mysql> select FROM_UNIXTIME(1344887103);  
    2. +---------------------------+  
    3. | FROM_UNIXTIME(1344887103) |  
    4. +---------------------------+  
    5. | 2012-08-14 03:45:03       |  
    6. +---------------------------+  
    7. 1 row in set (0.00 sec)
    复制代码

    2、FROM_UNIXTIME( unix_timestamp ,format )
      参数 unix_timestamp :与方法 FROM_UNIXTIME( unix_timestamp ) 中的参数含义一样;
      参数 format : 转换之后的时间字符串显示的格式;
      返回值:按照指定的时间格式显示的字符串;

    1. mysql> select FROM_UNIXTIME(1344887103,"%Y-%M-%D %h:%i:%s");  
    2. +-----------------------------------------------+  
    3. | FROM_UNIXTIME(1344887103,"%Y-%M-%D %h:%i:%s") |  
    4. +-----------------------------------------------+  
    5. | 2012-August-14th 03:45:03                     |  
    6. +-----------------------------------------------+  
    7. 1 row in set (0.00 sec)  
    8. mysql> select FROM_UNIXTIME(1344887103,"%Y-%m-%D %h:%i:%s");  
    9. +-----------------------------------------------+  
    10. | FROM_UNIXTIME(1344887103,"%Y-%m-%D %h:%i:%s") |  
    11. +-----------------------------------------------+  
    12. | 2012-08-14th 03:45:03                         |  
    13. +-----------------------------------------------+  
    14.   
    15. 1 row in set (0.00 sec)
    复制代码

    3、判断是不是同一天:

    1. SELECT tbl_gamedata.GameMapName,tbl_playerdata.GameMode, tbl_gamedata.MatchMode, tbl_playerdata.GameResult, SUM(tbl_playerdata.GameIsWin) AS tday_winCount,
    2.           SUM(tbl_playerdata.AssistCount) AS tday_assistCount,SUM(tbl_playerdata.KillCount) AS tday_killCount,
    3.           SUM(tbl_player_title.ThreeKill) AS tday_threeKill,SUM(tbl_player_title.FourKill) AS tday_fourKill,SUM(tbl_player_title.FiveKill) AS tday_fiveKill
    4.    FROM tbl_playerdata
    5.      LEFT JOIN tbl_gamedata ON tbl_playerdata.GameID = tbl_gamedata.GameID
    6.      LEFT JOIN tbl_player_title ON tbl_player_title.GameID = tbl_playerdata.GameID AND tbl_player_title.PlayerID = tbl_playerdata.PlayerID
    7.    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())
    8.    GROUP BY tbl_gamedata.GameMapName, tbl_playerdata.GameMode,tbl_gamedata.MatchMode,tbl_playerdata.GameResult;
    复制代码

    其中TO_DAYS(FROM_UNIXTIME(tbl_playerdata.GameStartTime)) = TO_DAYS(NOW()) 就是我们需要的判断
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-23 20:33 , Processed in 0.365974 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表