create function [dbo].[HtoSec](@lvalue as int)
RETURNS int
BEGIN
DECLARE @temp int
Set @temp = @lvalue * 60 * 60
RETURN @temp
END

create 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
END

create 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 数据库中时间函数的建立的更多相关文章

  1. MYSQL 、Oracle、SQLServer 数据库中时间的格式化输出

    在MYSQL 中格式化输出 date_forma t(date,'yyyyMMddHHmmss') Oracle 中格式化输出 to_char(time ,'yyyyMMddHHmmss') SQL ...

  2. 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页

    在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...

  3. Excel 数据导入至Sqlserver 数据库中 ltrim() 、rtrim() 、replace() 函数 依次空格无效问题

    今天导一些数据从Excel中至Sqlserver 数据库中,在做数据合并去重的时候发现,有两条数据一模一样,竟然没有进行合并: 最后发现有一条后面有个“空格”,正是因为这个“空格”让我抓狂许久,因为它 ...

  4. SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    SQLServer数据库中开启CDC导致事务日志空间被占满的原因 转载  2017-04-01   投稿:mrr    我要评论 这篇文章主要介绍了SQLServer数据库中开启CDC导致事务日志空间 ...

  5. PowerDesigner从SqlServer数据库中导入实体模型

    PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文  http://blog.csdn.net/sxycxwb/art ...

  6. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  7. ORACLE链接SQLSERVER数据库数据操作函数范例

    ORACLE链接SQLSERVER数据库数据操作函数范例 create or replace function FUN_NAME(LS_DJBH IN varchar2 ,LS_ITM varchar ...

  8. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  9. 设置SQLServer数据库中某些表为只读的多种方法

    原文:设置SQLServer数据库中某些表为只读的多种方法 翻译自:http://www.mssqltips.com/sqlservertip/2711/different-ways-to-make- ...

随机推荐

  1. 【转】Eclipse里项目名有红叉,但是展开后里面又没有红叉叉

    Eclipse里项目名有红叉,但是下面的每一个文件都没有红叉 有三种可能: 1:classpath有问题 2:编译级别有问题 3:jar包有问题,我碰过从maven上获取了问题jar包,工程里提示能找 ...

  2. OS X Framework Library not loaded: 'Image not found'的解决办法

    参考:OS X Framework Library not loaded: 'Image not found' 1.首先将相应的framework手动复制到/System/Library/Framew ...

  3. git之install

    一.window安装 1.下载路径 https://git-for-windows.github.io/ 2.如何在windows下安装GIT_百度经验 3.做完上面两部打开Git bash即可执行g ...

  4. nhibernat4.0.0.4000 bug

    //类 NHibernate.Loader.Loader 中 protected virtual string[] ResultRowAliases { get { return null; } } ...

  5. CSS3.0盒模型display:box;的使用

    CSS3.0盒模型display:-webkit-box;的使用 box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂 ...

  6. iOS中的时间和日期

    怎么说?时间和日期不是了不起的属性.了不起的功能,但是,我们决不能够因此就“冷落”它. 一:怎么“搞到货”--如何获取时间.日期 //-=-==当前时间------默认显示“0时区”时间 NSDate ...

  7. python——tuple元组

    >>> dir(tuple) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', ...

  8. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  9. java的ArrayList使用方法

    在第N个数据后面添加一个数据 用法: 在第1个元素后面添加E list.add(1, "E");

  10. 嵌套div中margin-top转移问题的解决办法

    在这两个浏览器中,有两个嵌套关系的div,如果外层div的父元素padding值为0,那么内层div的margin-top或者margin-bottom的值会“转移”给外层div. <!DOCT ...