TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)運(yùn)河免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
返回日期或日期時(shí)間表達(dá)式datetime_expr1 和datetime_expr2the 之間的整數(shù)差。
其結(jié)果的單位由interval 參數(shù)給出。該參數(shù)必須是以下值的其中一個(gè):
FRAC_SECOND 表示間隔是毫秒
SECOND? 秒
MINUTE? 分鐘
HOUR? 小時(shí)
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)
經(jīng)常有人問(wèn)及:在 MySQL 中如何獲得毫秒?于是就寫(xiě)篇日志總結(jié)下。
MySQL 較新的版本中(MySQL 6.0.5),也還沒(méi)有產(chǎn)生微秒的函數(shù),now() 只能精確到秒。 MySQL 中也沒(méi)有存儲(chǔ)帶有毫秒、微秒的日期時(shí)間類(lèi)型。
但,奇怪的是 MySQL 已經(jīng)有抽?。╡xtract)微秒的函數(shù)。例如:
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 獲得毫秒、微秒還是要在應(yīng)用層程序中想辦法。假如在應(yīng)用程序中獲得包含微秒的時(shí)間:1997-12-31 23:59:59.000010,在 MySQL 存放時(shí),可以設(shè)計(jì)兩個(gè)字段:c1 datetime, c2 mediumint,分別存放日期和微秒。為什么不采用 char 來(lái)存儲(chǔ)呢?用 char 類(lèi)型需要 26 bytes,而 datetime + mediumint 只有 11(8+3) 字節(jié)。
毫秒、微秒名詞解釋?zhuān)?/p>
毫秒:millisecond -- 千分之一秒
微秒:microsecond -- 一百萬(wàn)分之一秒
1 秒 = 1000 毫秒;1 毫秒 = 1000 微秒
有相當(dāng)一部分剛接觸到
MySQL
的朋友都遇到這樣一個(gè)相同的問(wèn)題,就是關(guān)于毫秒的存儲(chǔ)與顯示。由于MySQL數(shù)據(jù)類(lèi)型中只提供了DATETIME,
TIMESTAMP,
TIME,
DATE,
YEAR這幾種時(shí)間類(lèi)型,而且DATETIME
以及
TIMESTAMP
的最小單位是秒,沒(méi)有存儲(chǔ)毫秒級(jí)別的函數(shù)。
不過(guò)MySQL卻能識(shí)別時(shí)間中的毫秒部分。而且我們有多種方式可以獲得毫秒的部分,比如函數(shù):microsecond
等。
我這里舉一個(gè)簡(jiǎn)單的例子,來(lái)存儲(chǔ)秒之前和之后的部分。
對(duì)于把時(shí)間字段作為主鍵的應(yīng)用,我們可以建立以下的表來(lái)作相應(yīng)的轉(zhuǎn)化:
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來(lái)存儲(chǔ)所有的時(shí)間字段,
又或者是存儲(chǔ)一個(gè)HASH來(lái)保證性能!
方法很多,就看你的應(yīng)用怎么用合理了。
網(wǎng)頁(yè)標(biāo)題:mysql毫秒怎么表示 mysql 毫秒格式
本文URL:http://www.muchs.cn/article4/ddipooe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、Google、外貿(mào)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)