如何获得 MySQL 毫秒,微秒

如何获得 MySQL 毫秒,微秒,第1张

1、连接数据库,这里使用phpmyadmin连接数据库,用study数据库中两个表shijian和时间2。

2、数据库表输入毫秒时间,数据库表名字是shijian,有两个字段id和time,time标识时间字段,里面time字段预先输入内容1526085261(毫秒)。

3、查询数据库毫秒转换成需要的格式,然后mysql执行查询语句,用FROM_UNIXTIME(字段,格式) 把毫秒转换成正常时间格式。

4、这里采用DATE_FORMAT(时间,格式) 获得需要的时间格式。

5、现在mysql表shijian2中存储日期格式。

6、在mysql执行UNIX_TIMESTAMP把日期转换为毫秒。

有相当一部分刚接触到

MySQL

的朋友都遇到这样一个相同的问题,就是关于毫秒的存储与显示。由于MySQL数据类型中只提供了DATETIME,

TIMESTAMP,

TIME,

DATE,

YEAR这几种时间类型,而且DATETIME

以及

TIMESTAMP

的最小单位是秒,没有存储毫秒级别的函数。

不过MySQL却能识别时间中的毫秒部分。而且我们有多种方式可以获得毫秒的部分,比如函数:microsecond

等。

我这里举一个简单的例子,来存储秒之前和之后的部分。

对于把时间字段作为主键的应用,我们可以建立以下的表来作相应的转化:

mysql>

create

table

mysql_microsecond

(

log_time_prefix

timestamp

not

null

default

0,

log_time_suffix

mediumint

not

null

default

0)

engine

innnodb

Query

OK,

0

rows

affected,

2

warnings

(0.00

sec)

mysql>

alter

table

mysql_microsecond

add

primary

key

(log_time_prefix,

log_time_suffix)

Query

OK,

0

rows

affected

(0.01

sec)

Records:

0

Duplicates:

0

Warnings:

0

mysql>

set

@a

=

convert(concat(now(),'.222009'),datetime)

Query

OK,

0

rows

affected

(0.00

sec)

mysql>

insert

into

mysql_microsecond

select

date_format(@a,'%Y-%m-%d

%H-%i-%s'),date_format(@a,'%f')

Query

OK,

1

row

affected

(0.00

sec)

Records:

1

Duplicates:

0

Warnings:

0

mysql>

select

*

from

mysql_microsecond

+---------------------+-----------------+

|

log_time_prefix

|

log_time_suffix

|

+---------------------+-----------------+

|

2009-08-11

17:47:02

|

222009

|

+---------------------+-----------------+

1

row

in

set

(0.00

sec)

或者是用VARCHAR来存储所有的时间字段,

又或者是存储一个HASH来保证性能!

方法很多,就看你的应用怎么用合理了。

select UNIX_TIMESTAMP()

select UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)) 1000

select UNIX_TIMESTAMP(NOW(3)) 1000

3代表小数点后3位小数(也就到毫秒)

select unix_timestamp(CURDATE())*1000

SELECT unix_timestamp(DATE_ADD(CURDATE(), INTERVAL 9 HOUR))*1000

SELECT DATE_ADD(CURDATE(), INTERVAL 24 HOUR)

如果算毫秒数就unix_timestamp,再*1000

SELECT DATE_SUB(CURDATE(),INTERVAL 1DAY)

如果算毫秒数就unix_timestamp,再*1000


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存