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代码
-
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代码
-
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' )
结果类似:
SQL代码
-
2008年 12月 29日晚上11:45
-
2008年12月29日
-
29日 年12月 08
-
2008 年 12 月 29 日 16:25:46
如果要格式表中的数据,可以用:
2. MySQL数据库中日期与时间函数FROM_UNIXTIME(),UNIX_TIME()...
实例:date => int(11)
SQL代码
-
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 )
参数:通常是壹个十位的数字,如:1344887103
返回值:有两种,可能是类似 'YYYY-MM-DD HH:MM:SS' 这样的字符串,也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字,具体返回什么取决于该函数被调用的形式。
Sql代码
-
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 )
参数 unix_timestamp :与方法 FROM_UNIXTIME( unix_timestamp ) 中的参数含义一样;
参数 format : 转换之后的时间字符串显示的格式;
返回值:按照指定的时间格式显示的字符串;
Sql代码
-
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)
参考链接: 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代码
-
mysql> select unix_timestamp();
-
+ ------------------+
-
| unix_timestamp() |
-
+ ------------------+
-
| 1344887103 |
-
+ ------------------+
-
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代码
-
mysql> SELECT UNIX_TIMESTAMP();
-
+ ------------------+
-
| UNIX_TIMESTAMP() |
-
+ ------------------+
-
| 1344888895 |
-
+ ------------------+
-
1 row in set (0.00 sec)
-
-
mysql> SELECT UNIX_TIMESTAMP( '2012-08-14 16:19:23' );
-
+ ---------------------------------------+
-
| UNIX_TIMESTAMP( '2012-08-14 16:19:23' ) |
-
+ ---------------------------------------+
-
| 1344932363 |
-
+ ---------------------------------------+
-
1 row in set (0.00 sec)
注意:如果你使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换 TIMESTAMP 值与 Unix 时间戳的值,精度会丢失,因为这个映射在两个方向上不是一一对应的。比如说,由于本地时区的更改,有可能两个 UNIX_TIMESTAMP() 会映射到同壹个 Unix 时间戳的值。 FROM_UNIXTIME() 只会映射到原来的那个时间戳的值上。这里有个例子,在 CET 时区使用 TIMESTAMP:
Sql代码
-
mysql> SELECT UNIX_TIMESTAMP( '2005-03-27 03:00:00' );
-
+ ---------------------------------------+
-
| UNIX_TIMESTAMP( '2005-03-27 03:00:00' ) |
-
+ ---------------------------------------+
-
| 1111885200 |
-
+ ---------------------------------------+
-
mysql> SELECT UNIX_TIMESTAMP( '2005-03-27 02:00:00' );
-
+ ---------------------------------------+
-
| UNIX_TIMESTAMP( '2005-03-27 02:00:00' ) |
-
+ ---------------------------------------+
-
| 1111885200 |
-
+ ---------------------------------------+
-
mysql> SELECT FROM_UNIXTIME(1111885200);
-
+ --------------------------- +
-
| FROM_UNIXTIME(1111885200)|
-
+ --------------------------- +
-
| 2005-03-27 03:00:00 |
-
+ --------------------------- +
参考链接: 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/,如需转载,请注明出处,否则将追究法律责任。
相关阅读
笛卡儿积实际上就是数学中的排列组合。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0)
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版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,