mysql 中怎么把时间戳转换成正常时间

mysql 中怎么把时间戳转换成正常时间,第1张

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)之间相差的天数。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7354804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存