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 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數據類型中只提供了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 毫秒格式
本文URL:http://vcdvsql.cn/article4/ddipooe.html
成都網站建設公司_創新互聯,為您提供網站設計公司、Google、外貿網站建設、動態網站、網站設計、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯