必威体育Betway必威体育官网
当前位置:首页 > IT技术

MySQL中日期转换 FROM_UNIXTIME和UNIX_TIMESTAMP

时间:2019-08-08 23:45:27来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

unix_timestamp

mysql中日期转换 FROM_UNIXTIME和unix_timestamp



函数 FROM_UNIXTIME 将 MySQL 中以 10 位数字存储的时间以日期格式来显示。

语法: FROM_UNIXTIME(unix_timestamp,format) ,例如:

mysql> SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S');

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

| FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S') |

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

| 2009-02-14 07:31:30                            |

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

1 row in set (0.00 sec)

 

mysql> select FROM_UNIXTIME(1344887103);  

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

| FROM_UNIXTIME(1344887103) |

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

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

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

1 row in set (0.00 sec)

函数 UNIX_TIMESTAMP 返回指定时间的 UNIX 格式数字串,即 UNIX 时间戳(从 UTC 时间 '1970-01-01 00:00:00' 开始的秒数),通常为十位,如 1344887103 。

语法: UNIX_TIMESTAMP( date )

参数: date 可能是个 DATE 字符串, DATETIME 字符串, TIMESTAPE 字符串,或者是一个类似于 YYMMDD 或者 YYYYMMDD 的数字串。

返回:从 UTC 时间 '1970-01-01 00:00:00' 开始到该参数之间的秒数。服务器将参数 date 转化成 UTC 格式的内部时间。客户端则可以自行设置当前时区。当 UNIX_TIMESTAMP() 用于 1 个 TIMESTAMP 列时,函数直接返回内部时间戳的值;如果传递 1 个超出范围的时间到 UNIX_TIMESTAMP() ,它的返回值是零。如果 date 为空,那么将返回从 UTC 时间 '1970-01-01 00:00:00' 开始到当前时间的秒数。

mysql> select unix_timestamp();

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

| unix_timestamp() |

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

|       1533628203 |

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

1 row in set (0.00 sec)

 

mysql> select FROM_UNIXTIME(1533628203);

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

| FROM_UNIXTIME(1533628203) |

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

| 2018-08-07 15:50:03       |

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

1 row in set (0.00 sec)

 

mysql>

 



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

 

SQL代码     收藏代码

  1. DATE_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 位

实例

下面的脚本使用DATE_FORMAT()函数来显示不同的格式。我们使用NOW()来获得当前的日期/时间:

 

SQL代码     收藏代码

  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'  )  

 

结果类似:

 

SQL代码     收藏代码

  1.  2008年 12月 29日晚上11:45  

  2. 2008年12月29日  

  3. 29日   年12月  08  

  4.  2008 年 12  月  29   日 16:25:46  

 

如果要格式表中的数据,可以用:

 

2. MySQL数据库中日期与时间函数FROM_UNIXTIME(),UNIX_TIME()...

 

实例:date => int(11)

 

SQL代码     收藏代码

  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 )  

参数:通常是壹个十位的数字,如:1344887103  

返回值:有两种,可能是类似 'YYYY-MM-DD HH:MM:SS' 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。

 

Sql代码     收藏代码

  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 : 转换之后的时间字符串显示的格式;  

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

 

Sql代码     收藏代码

  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)  

 

参考链接: https://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_from-unixtime

 

1、UNIX_TIMESTAMP()

返回值:当前时间的UNIX格式数字串,或者说是 UNIX 时间戳(从 UTC 时间'1970-01-01 00:00:00'开始的秒数),通常为十位,如 1344887103。

 

Sql代码     收藏代码

  1. mysql>  select  unix_timestamp();  

  2. + ------------------+   

  3. | unix_timestamp() |  

  4. + ------------------+   

  5. |       1344887103 |  

  6. + ------------------+   

  7. 1 row  in   set  (0.00 sec)  

 

2、UNIX_TIMESTAMP( date )  

参数:date 可能是个 DATE 字符串,DATETIME 字符串,TIMESTAPE 字符串,或者是一个类似于 YYMMDD 或者 YYYYMMDD 的数字串。  

返回:从 UTC 时间'1970-01-01 00:00:00'开始到该参数之间的秒数。服务器将参数 date 解释成当前时区的壹个值并且将其转化成 UTC 格式的内部时间。客户端则可以自行设置当前时区。当 UNIX_TIMESTAMP() 用于壹个 TIMESTAMP 列时,函数直接返回内部时间戳的值;如果你传递壹个超出范围的时间到 UNIX_TIMESTAMP(),它的返回值是零。

 

Sql代码     收藏代码

  1. mysql>  SELECT  UNIX_TIMESTAMP();  

  2. + ------------------+   

  3. | UNIX_TIMESTAMP() |  

  4. + ------------------+   

  5. |       1344888895 |  

  6. + ------------------+   

  7. 1 row  in   set  (0.00 sec)  

  8.   

  9. mysql>  SELECT  UNIX_TIMESTAMP( '2012-08-14 16:19:23' );  

  10. + ---------------------------------------+   

  11. | UNIX_TIMESTAMP( '2012-08-14 16:19:23' ) |  

  12. + ---------------------------------------+   

  13. |                            1344932363 |  

  14. + ---------------------------------------+   

  15. 1 row  in   set  (0.00 sec)  

 

注意:如果你使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换 TIMESTAMP 值与 Unix 时间戳的值,精度会丢失,因为这个映射在两个方向上不是一一对应的。比如说,由于本地时区的更改,有可能两个 UNIX_TIMESTAMP() 会映射到同壹个 Unix 时间戳的值。 FROM_UNIXTIME() 只会映射到原来的那个时间戳的值上。这里有个例子,在 CET 时区使用 TIMESTAMP:

 

Sql代码     收藏代码

  1. mysql>  SELECT  UNIX_TIMESTAMP( '2005-03-27 03:00:00' );  

  2. + ---------------------------------------+   

  3. | UNIX_TIMESTAMP( '2005-03-27 03:00:00' ) |  

  4. + ---------------------------------------+   

  5. |                            1111885200 |  

  6. + ---------------------------------------+   

  7. mysql>  SELECT  UNIX_TIMESTAMP( '2005-03-27 02:00:00' );  

  8. + ---------------------------------------+   

  9. | UNIX_TIMESTAMP( '2005-03-27 02:00:00' ) |  

  10. + ---------------------------------------+   

  11. |                            1111885200 |  

  12. + ---------------------------------------+   

  13. mysql>   SELECT   FROM_UNIXTIME(1111885200);  

  14. +  --------------------------- +   

  15. | FROM_UNIXTIME(1111885200)|  

  16. +  --------------------------- +   

  17. | 2005-03-27 03:00:00 |  

  18. +  --------------------------- +   

 

 参考链接: https : //dev.mysql.com/doc/refman/5.0/zh/date-and-time-functions.html#function_unix-timestamp  

 



About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub( http://blog.itpub.net/26736162 )、博客园( http://www.cnblogs.com/lhrbest )和个人weixin公众号( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

qq群号: 230161599 (满) 、618766405

● weixin群:可加我weixin,我拉大家进群,非诚勿扰

● 联系我请加qq好友 ( 646634621 ) ,注明添加缘由

● 于 2018-08-01 06:00 ~ 2018-08-31 24:00 在魔都完成

● 最新修改时间:2018-08-01 06:00 ~ 2018-08-31 24:00

文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

● 小麦苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 小麦苗出版的数据库类丛书 : http://blog.itpub.net/26736162/viewspace-2142121/

● 小麦苗OCP、OCM、高可用网络班 : http://blog.itpub.net/26736162/viewspace-2148098/

● 小麦苗腾讯课堂主页 : https://lhr.ke.qq.com/

........................................................................................................................

使用 weixin客户端 扫描下面的二维码来关注小麦苗的weixin公众号( xiaomaimiaolhr )及QQ群(DBA宝典)、添加小麦苗weixin, 学习最实用的数据库技术

........................................................................................................................

欢迎与我联系

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2199334/,如需转载,请注明出处,否则将追究法律责任。

相关阅读

MySql 笛卡儿积

笛卡儿积实际上就是数学中的排列组合。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0)

常用MySQL图形化管理工具

MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化

MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法

MySQL的时间差函数TIMESTAMPDIFF、DATEDIFF的用法时间差函数TIMESTAMPDIFF、DATEDIFF的用法我们在写sql语句,尤其是存储过程中,会频

Navicat for MySQL破解,以及连接数据库出现错误:1045-Ac

在这个问题纠结了好些天,最后在这篇博客找到解决方法,转载记录下 https://blog.csdn.net/qq_36735409/article/details/78032144

MYSQL数据库爆库爆表爆字段

MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,

分享到:

栏目导航

推荐阅读

热门阅读