SQLServer中將時間戳轉換為時間格式 .


在sql中將時間戳轉換為時間類型


SQL里面有個DATEADD的函數。時間戳就是一個從1970-01-01 08:00:00到時間的相隔的秒數。所以只要把這個時間戳加上1970-01-01 08:00:00這個時間就可以得到你想要的時間了select DATEADD(second,1268738429 + 8 * 60 * 60,'1970-01-01 00:00:00')

注解:北京時間與GMT時間關系

     1.GMT是中央時區,北京在東8區,相差8個小時   

          2.所以北京時間 = GMT時間 + 八小時

例如:

   SELECT DATEADD(S,1160701488 + 8 * 3600,'1970-01-01 00:00:00')               --時間戳轉換成普通時間

   SELECT DATEDIFF(S,'1970-01-01 00:00:00', '2006-10-13 09:04:48.000') - 8 * 3600       --普通時間轉換成時間戳

 

****這個語句在sql2000中就能運行,在sql2005中運行總是提示錯誤?為什么?

 

 

 

oracle中時間戳的算法

 

 

獲取時間戳:

create or replace function getTimeStamp return integer is
  Result integer;
begin
  SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24miss')) * 86400000
    + EXTRACT(SECOND FROM SYSTIMESTAMP(3)) * 1000
 into result FROM DUAL;

  return(Result);
end getTimeStamp;

 

時間戳變化為日期格式:

create or replace function getDateFromTimeStamp(tsp in integer) return date is
  Result date;
  tt     integer;
begin
  tt := substr(tsp, 0, 13);
  SELECT ((tt - EXTRACT(SECOND FROM SYSTIMESTAMP(3)) * 1000) / 86400000 +
         TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24miss'))
    into result
    FROM DUAL;
  return(Result);
end getDateFromTimeStamp;

 


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM