sql将毫秒数字转换为日期
来源:互联网 发布:手机扫描软件app 编辑:程序博客网 时间:2024/04/28 10:18
sql将毫秒数字转换为日期
例如某个字段的毫秒数为:1345626941701
转换函数:select dateadd(s, 1345626941701/1000 ,'1970-1-1 08:00:00')
即用 毫秒数/1000 即可。
对于字段:col/1000再用上面的函数即可
对于oracle麻烦点:
select to_date('1970-01-01 08:00:00','yyyy-MM-dd HH24:MI:SS')+(1345626941701/86400000 - 1/86400) from dual;
------------
在开发过程中,为了方便,经常将时间日期的毫秒数以整形的格式存到数据库中,虽然方便了不同地方的处理,但也会增加些麻烦。比如,我要到数据库里直接看某个时间的值,都是一长串的数字,鬼都看不懂,想到看到该字段的值,还要写个转换程序,把毫秒数在转换成日期时间类型,或者拿个计算器来算。要查看的记录少,还能将就,如果多了,那不崩溃才怪呢。于是想到了在SQL里直接转换的方法,还好牛人多,在网上搜了一下,还真有相关的东西,原始的语句如下:
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') CURRENT_DATE, (SYSDATE- TO_DATE('1970-01-01','YYYY-MM-DD')) * 86400000 CURRENT_MILLI FROM DUAL;
这只是个例子,还不能直接解决上面的问题,所有就改了一下,是以自定义函数的形式存在的,代码如下:
CREATE OR REPLACE FUNCTION DATELONG2TEXT (PARAM IN LONG) RETURN VARCHAR2 AS
V_TEXT VARCHAR2(64);
BEGIN
SELECT TO_CHAR(TO_DATE('1970-01-01', 'YYYY-MM-DD')+(PARAM/(24*60*60*1000) + 8/24 - 1/86400),'YYYY-MM-DD HH24:MI:SS') INTO V_TEXT FROM DUAL;
RETURN V_TEXT;
END DATELONG2TEXT;
使用示例:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),SYSDATE,DATELONG2TEXT((SYSDATE - 8 / 24 - TO_DATE('1970-01-01', 'YYYY-MM-DD')) * 86400000) FROM DUAL;
说明:
1、加上 8/24 ,是因为时间格式是GMT,结果会受时区的影响,我们在东8区,所以要加上8个小时 ;
2、减1/86400,至于为什么,我也说不清楚,只是在实际当中确实多了1秒,只好以这种方式减去了,根据时间情况确定是否进行调整。
当然,我们也可以类似的写出将日期由字符串转换成毫秒数的函数。
- sql将毫秒数字转换为日期
- sql 将日期转换为数字
- js将日期转换为毫秒值
- java 中将日期转换为毫秒 ,将毫秒转换为日期
- Java 毫秒转换为日期类型、日期转换为毫秒
- Java 毫秒转换为日期类型、日期转换为毫秒
- ORACLE 毫秒转换为日期 日期转换毫秒
- ORACLE 毫秒变换为日期 日期转换毫秒
- ORACLE 毫秒变换为日期 日期转换毫秒
- Sql Server将字符串转换为日期
- SQL 将日期格式转换为Int
- SQL Server将字符串转换为日期
- java将毫秒转化为日期
- Java日期 1)将Date型日期转换为Long毫秒型 2)将Long毫秒型日期转换为Date 3)将Date型日期转换为yyyy格式字符串型
- Oracle内毫秒转换为日期
- ArcMap中毫秒转换为日期格式
- JS日期格式字符串转换为日期毫秒数和时间毫秒数转换为日期
- 将jxl读取Excel 中的数字转换为日期
- 《程序员修炼之道:专业程序员必知的33个技巧》笔记-----第二章
- windows phone 8 使用独立存储保存用户的登陆信息
- TCP/IP 第三章 IP:网际协议
- 【深度搜索】NYOJ58最小步数
- javascript屏蔽右键
- sql将毫秒数字转换为日期
- 模板方法模式
- c#泛型类关键字
- Linux/UNIX线程控制
- 使用xcode添加图片设置
- poj1552--Doubles
- Flex实例【Shangle.net】解析【六】
- 制作欢迎页思路
- 数据通信模型