MySQL中from_unixtime和unix_timestamp处理数据库时间戳转换问题

100人浏览   2025-01-09 13:32:14

MySQL数据表设计中,时间字段一般都设计为时间戳格式的,开发人员去查看的时候就显得有点不方便。可以使用FROM_UNIXTIME转换成日期格式进行查看

如果是日期格式的,要转换成时间戳查看呢,只需要把FROM_UNIXTIME换成UNIX_TIMESTAMP即可

案例一

SELECT *,FROM_UNIXTIME(create_time) AS DATETIME FROM ebk_cls_io_log;

案例二

select  from_unixtime(at2.payTime, '%Y-%m-%d'), sum(at2.amount) from alipay_trade at2 group by from_unixtime(at2.payTime, '%Y-%m-%d');


汇总

1、时间转时间戳
获取当前时间戳(秒)

select unix_timestamp();

结果:1599665897

获取指定格式日期时间戳

select unix_timestamp('2020-9-9');

结果:1599580800

获取指定格式日期和时间戳的时间戳

select unix_timestamp('2020-9-9 23:49:20');

结果:1599666560

2、时间戳转时间
语法:FROM_UNIXTIME(unix_timestamp,format)
时间戳(unix_timestamp)为10位

select from_unixtime(1599666560,'%Y-%m-%d %H:%i:%S');

结果:2020-09-09 23:49:20

格式

描述

示例

运行结果

%a

英文缩写星期名

SELECT FROM_UNIXTIME(1599666560,’%a’);

Tue

%b

英文缩写月名

SELECT FROM_UNIXTIME( Now( ), ‘%b’ )

Sep

%c

月,数值

SELECT FROM_UNIXTIME( Now( ), ‘%c’ )

9

%D

带有英文前缀的月中的第几天

SELECT FROM_UNIXTIME( Now( ), ‘%D’ )

9th

%d

月的天,数值(00-31)

SELECT FROM_UNIXTIME( Now( ), '%d ’ )

09

%e

月的天,数值(0-31)

SELECT FROM_UNIXTIME( Now( ), '%e ’ )

9

%f

微秒

SELECT FROM_UNIXTIME(1599666560 , '%f ’ )

000000

%H

小时 (00-23)

SELECT FROM_UNIXTIME(1599666560 , '%H ’ )

23

%h

小时 (01-12)

SELECT FROM_UNIXTIME(1599666560 , '%h ’ )

11

%I

小时 (01-12)

SELECT FROM_UNIXTIME(1599666560, ‘%I’ )

11

%i

分钟,数值(00-59)

SELECT FROM_UNIXTIME(1599666560, ‘%i’ )

49

%j

年的天 (001-366)

SELECT FROM_UNIXTIME(1599666560, ‘%j’ )

253

%k

小时 (0-23)

SELECT FROM_UNIXTIME(1599666560, ‘%k’ )

23

%l

小时 (1-12)

SELECT FROM_UNIXTIME(1599666560, ‘%l’ )

11

%M

月份,英文

SELECT FROM_UNIXTIME(1599666560, ‘%M’ )

September

%m

月份,数值(00-12)

SELECT FROM_UNIXTIME(1599666560, ‘%m’ )

09

%p

上下午

SELECT FROM_UNIXTIME(1599666560, ‘%p’ )

PM

%r

时间,12-小时(hh:mm:ss AM 或 PM)

SELECT FROM_UNIXTIME(1599666560, ‘%r’ )

11:49:20 PM

%S

秒(00-59)

SELECT FROM_UNIXTIME(1599666560, ‘%S’ )

20

%s

秒(00-59)

SELECT FROM_UNIXTIME(1599666560, ‘%s’ )

20

%T

时间, 24-小时 (hh:mm:ss)

SELECT FROM_UNIXTIME(1599666560, ‘%T’ )

23:49:20

%U

周 (00-53) 星期日是一周的第一天

SELECT FROM_UNIXTIME(1599666560, ‘%U’ )

36

%u

周 (00-53) 星期一是一周的第一天

SELECT FROM_UNIXTIME(1599666560, ‘%u’ )

37

%V

周 (01-53) 星期日是一周的第一天,与 %X 使用

SELECT FROM_UNIXTIME(1599666560, ‘%V’ )

36

%v

周 (01-53) 星期一是一周的第一天,与 %x 使用

SELECT FROM_UNIXTIME(1599666560, ‘%v’ )

37

%W

周几,英文全称

SELECT FROM_UNIXTIME(1599666560, ‘%W’ )

Wednesday

%w

周的天 (0=星期日, 6=星期六)

SELECT FROM_UNIXTIME(1599666560, ‘%w’ )

3

%X

年,4 位,其中的星期日是周的第一天,与 %V 使用

SELECT FROM_UNIXTIME(1599666560, ‘%X’ )

2020

%x

年,4 位,其中的星期一是周的第一天,与 %v 使用

SELECT FROM_UNIXTIME(1599666560, ‘%x’ )

2020

%Y

年,4 位

SELECT FROM_UNIXTIME(1599666560, ‘%Y’ )

2020

%y

年,2 位

SELECT FROM_UNIXTIME(1599666560, ‘%y’ )

20

相关推荐