mysql语句中的时间格式化转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql语句中的时间格式化转换相关的知识,希望对你有一定的参考价值。

1.unix_timestamp

将时间转化为时间戳。(date 类型数据转换成 timestamp 形式整数)

没传时间参数则取当前时间的时间戳

MySQL> select unix_timestamp();
+------------------+
| unix_timestamp() |
+------------------+
|       1361586358 |
+------------------+
1 row in set (0.01 sec)

 

mysql> select unix_timestamp(‘2013-01-01 10:10:10‘);
+---------------------------------------+
| unix_timestamp(‘2013-01-01 10:10:10‘) |
+---------------------------------------+
|                            1357006210 |
+---------------------------------------+
1 row in set (0.00 sec)

 

2.from_unixtime

将timestamp 形式整数 转化为 date类型


mysql>  select from_unixtime(1355272360);
+---------------------------+
| from_unixtime(1355272360) |
+---------------------------+
| 2012-12-12 08:32:40       |
+---------------------------+
1 row in set (0.00 sec)

当然也可以指定输出的时间格式:

mysql>  select from_unixtime(1355272360,‘%Y%m%d‘);
+------------------------------------+
| from_unixtime(1355272360,‘%Y%m%d‘) |
+------------------------------------+
| 20121212                           |
+------------------------------------+

 

3.关于mysql 时间戳的限制

目前timestamp 所能表示的范围在 1970  -  2038之间 。

超过这个范围 得到的时间将会溢出 得到的时间是null.

mysql>  select from_unixtime(0);
+---------------------+
| from_unixtime(0)    |
+---------------------+
| 1970-01-01 08:00:00 |
+---------------------+

mysql> select from_unixtime(2147483647);
+---------------------------+
| from_unixtime(2147483647) |
+---------------------------+
| 2038-01-19 11:14:07       |
+---------------------------+
1 row in set (0.00 sec)




































以上是关于mysql语句中的时间格式化转换的主要内容,如果未能解决你的问题,请参考以下文章

mysql中将datetime转换为int格式

MySQL中的日期格式转换

如何处理mysql中的时间戳读取问题

mysql日期操作

将数组转换为 WHERE IN mysql 子句的格式

CI中的日期辅助函数怎么把时间转换成可以插入mysql的时间