网站建设资讯

NEWS

网站建设资讯

mysql毫秒怎么表示 mysql 毫秒格式

mysql 时间差 以秒为单位

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业运河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。

其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

FRAC_SECOND 表示间隔是毫秒

SECOND  秒

MINUTE  分钟

HOUR  小时

DAY  天

WEEK  星期

MONTH  月

QUARTER  季度

YEAR  年

mysql SELECT TIMESTAMPDIFF(SECOND, '2012-12-21', CURRENT_TIMESTAMP()) AS `Second`;

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

| Second   |

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

| 53880812 |

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

1 row in set (0.00 sec)

如何获得 MySQL 毫秒,微秒

经常有人问及:在 MySQL 中如何获得毫秒?于是就写篇日志总结下。

MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒。 MySQL 中也没有存储带有毫秒、微秒的日期时间类型。

但,奇怪的是 MySQL 已经有抽取(extract)微秒的函数。例如:

select microsecond('12:00:00.123456'); -- 123456

select microsecond('1997-12-31 23:59:59.000010'); -- 10

select extract(microsecond from '12:00:00.123456'); -- 123456

select extract(microsecond from '1997-12-31 23:59:59.000010'); -- 10

select date_format('1997-12-31 23:59:59.000010', '%f'); -- 000010

尽管如此,想在 MySQL 获得毫秒、微秒还是要在应用层程序中想办法。假如在应用程序中获得包含微秒的时间:1997-12-31 23:59:59.000010,在 MySQL 存放时,可以设计两个字段:c1 datetime, c2 mediumint,分别存放日期和微秒。为什么不采用 char 来存储呢?用 char 类型需要 26 bytes,而 datetime + mediumint 只有 11(8+3) 字节。

毫秒、微秒名词解释:

毫秒:millisecond -- 千分之一秒

微秒:microsecond -- 一百万分之一秒

1 秒 = 1000 毫秒;1 毫秒 = 1000 微秒

MySQL存储毫秒数据的方法

有相当一部分刚接触到

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,

rows

affected,

2

warnings

(0.00

sec)

mysql

alter

table

mysql_microsecond

add

primary

key

(log_time_prefix,

log_time_suffix);

Query

OK,

rows

affected

(0.01

sec)

Records:

Duplicates:

Warnings:

mysql

set

@a

=

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

Query

OK,

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:

Warnings:

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来保证性能!

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


分享名称:mysql毫秒怎么表示 mysql 毫秒格式
当前路径:http://cdweb.net/article/ddipooe.html