数据库10位秒时间戳数字转日期处理

说明

项目需求需要查询一条sql语句,发现其中时间格式为10位时间戳(1464686734)不是传统意义上的yyyymmdd格式,10位类似这种一般是秒为单位,测试环境位SQLSERVER数据库,后续生产使用ORACLE,记录一下转换方式

SQLSEREVER中转换

SQLSERVER中可以使用函数DATEADD即可以实现

SELECT  DATEADD(ss, t.字段名称A, '1970-01-01 08:00:00') as 别名,t.字段名称A
		FROM
			表名 t 

效果
在这里插入图片描述

ORACLE中转换

Oracle中没有DATEADD函数可以使用to_char+to_data函数使用

select sysdate, to_char( 1464686734/ ( 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00',
 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') from dual

效果
在这里插入图片描述

java代码中转换

最后就是JAVA中处理这类事件函数了

package com.test;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeUtil {
	
	 	public static void main(String[] args) {
	 		secondTest();
		}
	    public static void secondTest(){
	        long second = 1464686734;
	        String dateString = secondToDate(second,"yyyy-MM-dd HH:mm:ss");
	        System.out.println(dateString);
	    }
	    /**
	            * 秒转换为指定格式的日期
	     */
	    private static String secondToDate(long second,String patten) {
	        Calendar calendar = Calendar.getInstance();
	        calendar.setTimeInMillis(second * 1000);//转换为毫秒
	        Date date =  calendar.getTime();
	        SimpleDateFormat format = new SimpleDateFormat(patten);
	        String dateString = format.format(date);
	        return dateString;
	    }
	 
	}

控制台输出

2016-05-31 17:25:34
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值