加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server中的sql-server-2008 – UNIX_TIMESTAMP

发布时间:2020-12-12 16:09:55 所属栏目:MsSql教程 来源:网络整理
导读:我需要在SQL Server 2008中创建一个将会模仿mysql的UNIX_TIMESTAMP()的函数. 提前致谢 ! 解决方法 试试这个帖子 http://skinn3r.wordpress.com/2009/01/26/t-sql-datetime-to-unix-timestamp/ CREATE FUNCTION UNIX_TIMESTAMP (@ctimestamp datetime)RETURNS
我需要在SQL Server 2008中创建一个将会模仿mysql的UNIX_TIMESTAMP()的函数.

提前致谢 !

解决方法

试试这个帖子
http://skinn3r.wordpress.com/2009/01/26/t-sql-datetime-to-unix-timestamp/
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

或这篇文章:

http://mysql.databases.aspfaq.com/how-do-i-convert-a-sql-server-datetime-value-to-a-unix-timestamp.html

代码如下:

CREATE FUNCTION dbo.DTtoUnixTS 
( 
    @dt DATETIME 
) 
RETURNS BIGINT 
AS 
BEGIN 
    DECLARE @diff BIGINT 
    IF @dt >= '20380119' 
    BEGIN 
        SET @diff = CONVERT(BIGINT,DATEDIFF(S,'19700101','20380119')) 
            + CONVERT(BIGINT,'20380119',@dt)) 
    END 
    ELSE 
        SET @diff = DATEDIFF(S,@dt) 
    RETURN @diff 
END

样品用量:

SELECT dbo.DTtoUnixTS(GETDATE()) 
-- or 
SELECT UnixTimestamp = dbo.DTtoUnixTS(someColumn) 
    FROM someTable

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读