sqlserver 資料庫中時間函式的建立

2022-02-11 09:17:54 字數 2150 閱讀 1418

create function [dbo].[htosec](@lvalue as int)

returns int

begin

declare @temp int

set @temp = @lvalue * 60 * 60

return @temp

endcreate function [dbo].[gettime](@dtmvalue as datetime)

returns int

begin

declare @temp int

declare @gmt_timezone int

set @gmt_timezone = 8

set @temp = datediff(s, cast('1970-01-01 00:00:00' as datetime), @dtmvalue) - dbo.htosec(@gmt_timezone)

return @temp

endcreate function [dbo].[getintdate](@intvalue as int)

returns datetime

begin

declare @temp datetime

declare @gmt_timezone int

set @gmt_timezone = 8

set @temp = dateadd(s, @intvalue + dbo.htosec(@gmt_timezone), cast('1970-01-01 00:00:00' as datetime))

return @temp

end另外:

在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;

SQLServer資料庫的時間函式

返回日期的年份 select year createtime as 年份 from tablename 返回日期的月份 select month createtime as 月份 from tablename 返回日期的天數 select day createdate as 天數 from tabl...

收集學習SQL server資料庫時間函式

datediff 返回跨兩個指定日期的日期和時間邊界數。語法datediff datepart startdate enddate sqlserver時間日期函式詳解,sqlserver,時間日期,當前系統日期 時間 select getdate select dateadd day,2,2004 ...

SQL server 資料庫中的資料操作

sql提供了4種基本操作的語句,它們分別是進行資料的增加 查詢 修改和刪除操作。1.新增操作 sql語句中最常用的用於指定向資料表中插入資料的方法是使用insert語句。insert語句的使用很簡單,他的基本語法格式如下 insert into table name column list valu...