十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
select time_to_sec(now()), now(),
你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事网站设计、网站建设、企业网站建设、移动网站建设、网页设计、成都品牌网站建设、网页制作、做网站、建网站。成都创新互联拥有实力坚强的技术研发团队及素养的视觉设计专才。
current_timestamp(),
replace(unix_timestamp(now(3)),'.',''),
replace(unix_timestamp(current_timestamp(3)),'.',''),
replace(current_timestamp(3),'.',':'),
unix_timestamp(current_timestamp(3)),
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,
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最新版中也还没有产生微秒、微妙的函数,now() 只能精确到秒。 MySQL 中也没有存储带有毫秒、微秒的日期时间类型。但MySQL 已经有抽取(extract)微秒的函数了。
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
mysql没有直接获得当前时间毫秒数的方法,但是可以从带毫秒的时间格式的字段中取出毫秒部分。具体函数百度 mysql 取毫秒。 如果你是想通过毫秒数来实现时间戳功能的话还是算了,你可以在系统中获取毫秒数,然后存放在mysql中,也可以专门设个毫秒的字段,专门存储。