在sql中将时间戳转换为时间类型
2013-03-20 13:44
525 查看
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;
注解:北京时间与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;
相关文章推荐
- 在sql中将时间戳转换为时间类型
- 在sql中将时间戳转换为时间类型
- sql中将时间戳转换为时间类型
- 时间类型的转换,SQL中CONVERT转化函数的用法 (转载)
- SQL语句中将Datetime类型转换为字符串类型
- SQL 2008表中字段是用字符型表示时间,如何转换为时间类型,然后比较
- [转]T-SQL Convert转换时间类型
- util包下的Date与sql包下的时间类型之间的转换
- 在sql server中将时间戳和时间类型相互转换
- util包下的时间类型与sql包下的时间类型之间的转换
- T-SQL Convert转换时间类型
- SQL中时间数值int类型转换为时间类型
- SQL 时间类型与字符串类型相互转换
- sql将时间类型转换为字符串类型汇总
- 时间类型的转换,SQL中CONVERT转化函数的用法
- SQL语句中将字符串转换为时间格式
- sql语句 关于日期时间、类型转换的东西
- SQL servcer 时间日期函数、数据类型转换
- java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换
- sql将时间类型转换为字符串类型汇总