mysql 中把时间戳转换成普通时间,使用FROM_UNIXTIME函数
一、FROM_UNIXTIME函数简介
1、函数作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
2、语法:FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
根据format字符串格式化date值。
下列修饰符可以被用在format字符串中:
3、例子:
SELECT FROM_UNIXTIME(1500109248, '%Y-%m-%d %H:%i:%S')返回:2017-07-15 17:00:48
时间戳转时间:
mysql>select from_unixtime(1604730123)
+---------------------------+
| from_unixtime(1604730123) |
+---------------------------+
| 2020-11-07 14:22:03 |
+---------------------------+
1 row in set (0.02 sec)
时间戳格式化
mysql>SELECT from_unixtime(1604730123, '%Y-%m-%d %H:%i:%S')
+------------------------------------------------+
| from_unixtime(1604730123, '%Y-%m-%d %H:%i:%S') |
+------------------------------------------------+
| 2020-11-07 14:22:03 |
+------------------------------------------------+
1 row in set (0.00 sec)
函数:FROM_UNIXTIME
作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
语法:FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
根据format字符串格式化date值。
下列修饰符可以被用在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), 这里星期一是星期的第一天
%% 一个文字“%”。
1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()mysql>select current_timestamp, current_timestamp()
+---------------------+---------------------+
| current_timestamp | current_timestamp() |
+---------------------+---------------------+
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+---------------------+---------------------+
2. MySQL (Unix 时间戳、日期)转换函数:
unix_timestamp(),
unix_timestamp(date),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp,format)
下面是示例:
select unix_timestamp()-- 1218290027
select unix_timestamp('2008-08-08')-- 1218124800
select unix_timestamp('2008-08-08 12:30:00')-- 1218169800
select from_unixtime(1218290027)-- '2008-08-09 21:53:47'
select from_unixtime(1218124800)-- '2008-08-08 00:00:00'
select from_unixtime(1218169800)-- '2008-08-08 12:30:00'
select from_unixtime(1218169800, '%Y %D %M %h:%i:%s %x')-- '2008 8th August 12:30:00 2008'
3. MySQL 时间戳(timestamp)转换、增、减函数:
timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2) --
请看示例部分:
select timestamp('2008-08-08')-- 2008-08-08 00:00:00
select timestamp('2008-08-08 08:00:00', '01:01:01')-- 2008-08-08 09:01:01
select timestamp('2008-08-08 08:00:00', '10 01:01:01')-- 2008-08-18 09:01:01
select timestampadd(day, 1, '2008-08-08 08:00:00')-- 2008-08-09 08:00:00
select date_add('2008-08-08 08:00:00', interval 1 day)-- 2008-08-09 08:00:00
MySQL timestampadd() 函数类似于 date_add()。
select timestampdiff(year,'2002-05-01','2001-01-01')-- -1
select timestampdiff(day ,'2002-05-01','2001-01-01')-- -485
select timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08 00:00:00')-- -12
select datediff('2008-08-08 12:00:00', '2008-08-01 00:00:00')-- 7
MySQL timestampdiff() 函数就比 datediff() 功能强多了,datediff() 只能计算两个日期(date)之间相差的天数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)