跪求:SQL number转为Date 或者是相反 SQL类型转换 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 需求是select出来一个表的varcahr2 的字段如"201301020304"需要在另一个表的两个number字段之间的数据 你是想吧double转换为日期吧。。 明白你的意思了,数字转日期用如下方法:select to_date('1970-01-01','yyyy-mm-dd')+1383893085000/(3600*24*1000) from dual select to_date('1970-01-01 08:00:00','yyyy-MM-dd HH:mm:ss')+1383893085000/(3600*24*1000) from dual 啊。少除1000就行了呗?这个转换就是依据1970年这个时间点往后加的数那还是没有精确到秒啊你举几个例子我看看。。SELECT t1.LOGIN_TIME,t2.usetime,t1.LGOUT_TIME,to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LOGIN_TIME/24/60/60,'yyyyMMddHH24mmss'),to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LGOUT_TIME/24/60/60,'yyyyMMddHH24mmss') FROM t_separate_servlog_day t1 ,t_separate_internet_day t2 WHERE t1.USERIP=t2.USERIP AND t2.usetime >= to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LOGIN_TIME/24/60/60,'yyyyMMddHH24mmss') AND t2.usetime <= to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LGOUT_TIME/24/60/60,'yyyyMMddHH24mmss') 这样的 查出来的 数据是 LOGIN_TIME USETIME LGOUT_TIME TO_CHAR(TO_DAT TO_CHAR(TO_DAT---------- -------------------- ---------- -------------- --------------1395044645 20140317144338 1395046627 20140317160305 201403171603071395044645 20140317144841 1395046627 20140317160305 201403171603071395044645 20140317144059 1395046627 20140317160305 20140317160307 1395044645 转为date应该是2014-03-17 16:24:05 select to_date('1970-01-01','yyyy-mm-dd')+(1395044645+28800)/(3600*24) from dual格林尼治时间(GMT)与我们本地时间(北京时间)相差8小时,所以还需要加上28800 select to_date('1970-01-01','yyyy-mm-dd')+(1395044645+28800)/(3600*24) from dual格林尼治时间(GMT)与我们本地时间(北京时间)相差8小时,所以还需要加上28800加过的 to_date('1970-01-01 08:00:00' 我是从8点开始的 就是后面的格式化的时候出了点问题 现在好了 谢谢 如何设计这样的表结构,才能使其综合查询的效率比较高。 数据挖掘 属性组合 的sql语句 急!!!!! 高分!!! oracle里怎么出力CSV文件 dmp导入的时候报错,如何解决 两个表关联问题 ORACLE 中出现错误ORA-0100:超出打开游标的最大数,我应如何增加打开游标的最大数.谢谢 100分求好书 如何知道和修改ORACLE的缺省日期时间格式? 在.net下报错ORA-28000: the account is locked Oracle升级 java 连接数据库慢问题 sql语句编写,字段里存的是json串,需要根据json串里边的数据查询表里的数据,求大神啊
这个转换就是依据1970年这个时间点往后加的数那还是没有精确到秒啊
你举几个例子我看看。。SELECT t1.LOGIN_TIME,t2.usetime,t1.LGOUT_TIME,to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LOGIN_TIME/24/60/60,'yyyyMMddHH24mmss'),to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LGOUT_TIME/24/60/60,'yyyyMMddHH24mmss') FROM t_separate_servlog_day t1 ,t_separate_internet_day t2
WHERE t1.USERIP=t2.USERIP
AND t2.usetime >= to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LOGIN_TIME/24/60/60,'yyyyMMddHH24mmss')
AND t2.usetime <= to_char(to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss')+t1.LGOUT_TIME/24/60/60,'yyyyMMddHH24mmss') 这样的 查出来的 数据是 LOGIN_TIME USETIME LGOUT_TIME TO_CHAR(TO_DAT TO_CHAR(TO_DAT
---------- -------------------- ---------- -------------- --------------
1395044645 20140317144338 1395046627 20140317160305 20140317160307
1395044645 20140317144841 1395046627 20140317160305 20140317160307
1395044645 20140317144059 1395046627 20140317160305 20140317160307
格林尼治时间(GMT)与我们本地时间(北京时间)相差8小时,所以还需要加上28800
格林尼治时间(GMT)与我们本地时间(北京时间)相差8小时,所以还需要加上28800加过的 to_date('1970-01-01 08:00:00' 我是从8点开始的 就是后面的格式化的时候出了点问题 现在好了 谢谢