timestamp資料型別:是date的擴充套件,可以儲存年、月、日、小時、分鐘、秒,同時還可以儲存秒的小數部分。
通過to_timestamp函式將date型轉成這種型別,來看看它的形式
詳見**:
sql**
selectto_timestamp('2009-7-30'
,'yyyy-mm-dd'
)
fromdual
select to_timestamp('2009-7-30','yyyy-mm-dd')
from dual
結果為:30-7月 -09 12.00.00.000000000 上午
timestamp以日期格式輸出表示:
sql**
selectto_char(to_timestamp('2009-7-30'
,'yyyy-mm-dd hh24:mi:ss'
) ,'yyyy-mm-dd hh24:mi:ss'
)
fromdual
select to_char(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss') ,'yyyy-mm-dd hh24:mi:ss')
from dual
結果為:2009-07-30 00:00:00
date格式的時間差,以秒為單位:
sql**
select(to_date('2009-7-30'
, 'yyyy-mm-dd hh24:mi:ss'
) -
to_date('2009-7-29'
, 'yyyy-mm-dd hh24:mi:ss'
)) * 86400as
"itvtime"
fromdual
select (to_date('2009-7-30', 'yyyy-mm-dd hh24:mi:ss') -
to_date('2009-7-29', 'yyyy-mm-dd hh24:mi:ss')) * 86400 as "itvtime"
from dual
結果為:86400
timestamp格式求時間差,以秒為單位:
sql**
select(to_date(to_char(to_timestamp('2009-7-30'
,'yyyy-mm-dd hh24:mi:ss'
) , 'yyyy-mm-dd hh24:mi:ss'
),
'yyyy-mm-dd hh24:mi:ss'
) -
to_date(to_char(to_timestamp('2009-7-29'
,'yyyy-mm-dd hh24:mi:ss'
) , 'yyyy-mm-dd hh24:mi:ss'
),
'yyyy-mm-dd hh24:mi:ss'
)) * 86400as
"itvtime"
fromdual
select (to_date(to_char(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss') , 'yyyy-mm-dd hh24:mi:ss'),
'yyyy-mm-dd hh24:mi:ss') -
to_date(to_char(to_timestamp('2009-7-29','yyyy-mm-dd hh24:mi:ss') , 'yyyy-mm-dd hh24:mi:ss'),
'yyyy-mm-dd hh24:mi:ss')) * 86400 as "itvtime"
from dual
結果為:86400
求任意timestamp格式的時間戳,據2023年01月01日的毫秒數:
sql**
select(to_date(to_char(to_timestamp('2009-7-30'
,'yyyy-mm-dd hh24:mi:ss'
), 'yyyy-mm-dd hh24:mi:ss'
),'yyyy-mm-dd hh24:mi:ss'
) -
to_date('1970-01-01 00:00:00'
, 'yyyy-mm-dd hh24:mi:ss'
)) * 86400000
fromdual
select (to_date(to_char(to_timestamp('2009-7-30','yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') -
to_date('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')) * 86400000
from dual
結果為:1248912000000
應用:具體應用時將例子中to_timestamp()陰影部分**換成相應字段即可(該字段是timestamp格式)
與得到以分為單位或小時為單位只需要變乘的數即可
雖然實現了時間差的計算,自我感覺比較複雜化,希望找到比較簡便的方法。。。
根據日期求當月天數
sql**
selectadd_months(trunc(to_date('2009-9'
, 'yyyy-mm'
), 'mm'
), 1)
- trunc(to_date('2009-9'
, 'yyyy-mm'
), 'mm'
)
fromdual
select add_months(trunc(to_date('2009-9', 'yyyy-mm'), 'mm'), 1)
- trunc(to_date('2009-9', 'yyyy-mm'), 'mm')
from dual
時間戳TimeStamp處理
我獲得這個時間戳是得想除以1000再處理的,看看你們的需要先除多少再處理 時間戳處理 nsinteger time timestamp 1000 nsnumber timer nsnumber numberwithinteger time nstimeinterval interval timer ...
TimesTen 時間戳 timestamp 用法
很多時候我們需要對資料庫進行增量更新,比如從timesten資料庫匯入資料到mysql資料庫中。為了保證匯入是增量的,我們必須跳過那些沒有 被修改過的資料,現在比較流行的方法是使用時間戳,也就是定義乙個型別為timestamp的新列。當我們對這個表增加或刪除行時,必須更新這個列的資料,以反映行被更新...
oracle的timestamp型別使用
我們都知道date和timestamp都是對日期和時間的表示,只是兩種型別的精確度不同,前者精確到秒,後者精確到小數秒 fractional seconds precision 可以是 0 to 9,預設是 但是對date型別的運算很簡單,有很多函式可用來處理 而兩個timestamp的差則是很直觀...