快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → MySQL-数据库中日期与时间函数-FROM_UNIXTIME(),-UNIX_TIME()

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

时间:2022-08-23 21:50:27人气:作者:快盘下载我要评论

这几天写代码;反复用到将日期时间字段转化成数字串和日期格式字符串的情况;感觉自己还处于壹知半解之中;索性花点时间查下相关资料;基本弄明白了 mysql 中两个常用的日期函数的用法;记录于此;作为笔记供参考。

1、FROM_UNIXTIME( unix_timestamp )
参数;通常是壹个十位的数字;如;1344887103
返回值;有两种;可能是类似 ;YYYY-MM-DD HH:MM:SS; 这样的字符串;也有可能是类似于 YYYYMMDDHHMMSS.uuuuuu 这样的数字;具体返回什么取决于该函数被调用的形式。

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 : 转换之后的时间字符串显示的格式;
返回值;按照指定的时间格式显示的字符串;

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。

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();它的返回值是零。

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;

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/en/date-and-time-functions.html#function_unix-timestamp

 

参数format可以有的形式;

%M 月名字(January;December) 
%W 星期名字(Sunday;Saturday) 
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。; 
%Y 年, 数字, 4 位 
%y 年, 数字, 2 位 
%a 缩写的星期名字(Sun;Sat) 
%d 月份中的天数, 数字(00;31) 
%e 月份中的天数, 数字(0;31) 
%m 月, 数字(01;12) 
%c 月, 数字(1;12) 
%b 缩写的月份名字(Jan;Dec) 
%j 一年中的天数(001;366) 
%H 小时(00;23) 
%k 小时(0;23) 
%h 小时(01;12) 
%I 小时(01;12) 
%l 小时(1;12) 
%i 分钟, 数字(00;59) 
%r 时间,12 小时(hh:mm:ss [AP]M) 
%T 时间,24 小时(hh:mm:ss) 
%S 秒(00;59) 
%s 秒(00;59) 
%p AM或PM 
%w 一个星期中的天数(0=Sunday ;6=Saturday ; 
%U 星期(0;52), 这里星期天是星期的第一天 
%u 星期(0;52), 这里星期一是星期的第一天 
%% 一个文字% 

 

相关文章

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。