ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)

直接上代码:

CREATE FUNCTION UNIX_TIMESTAMP (@ctimestamp datetime) RETURNS integer 
AS
BEGIN
 /* Function body */
 declare @return integer
 SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp)
 return @return
END


CREATE FUNCTION from_unixtime (@ts integer) RETURNS datetime 
AS
BEGIN
 /* Function body */
 declare @return datetime
 select @return = DATEADD(second, @ts, {d '1970-01-01'})
 return @return
END

用法

跟MySQL下的一样类似:

select dbo.UNIX_TIMESTAMP('2013-1-1')
select dbo.from_unixtime(2145000000)