跪求: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点开始的 就是后面的格式化的时候出了点问题 现在好了 谢谢 请教:Oracle存储过程中需要写commit吗? 求助:ORACLE远程连接配置问题(网上的方法试过了还不行,内详) 为什么不使用to_date()? oracle关于方案的问题 请问各位老it的前辈们,你们知道这个问题的答案吗? 请帮我看看这条查询语句的逻辑是否正确 我为什么每一次装上oracle816后,我的oms怎么才能用呢,需要配置什么和环境变量呢? 对ORACLE9I面向对象特性的思考 存储过程的问题 插入记录时执行触发器的问题? 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点开始的 就是后面的格式化的时候出了点问题 现在好了 谢谢