将毫秒转换为数据库中日期格式的方法。

在开发过程中,我们经常将毫秒和时间的毫秒数存储到数据库中,但相应的时间似乎很不方便。我们可以使用一些函数将毫秒转换成日期格式。

首先,在MySQL数据库中,有一个内置的功能from_unixtime()做相应的转换,使用如下:
复制代码代码如下所示:
MySQL >选择from_unixtime(1,% y %M - %:%我:%s);
--------------------------------------- + +
|(from_unixtime 1,% y %M - %:%我:%s)|
--------------------------------------- + +
08:00:01 | | 1970-01-01
--------------------------------------- + +
1行集(0秒)

在功能from_unixtime参数单位是第二,因为我们在+ 08:00时区,最终显示结果08:00:01 1970-01-01。

两。在Oracle中,由于没有相应的内置函数,我们只能自定义一个函数来完成转换。
复制代码代码如下所示:
已创建或替换功能long2date(参数返回VARCHAR2为长)
v_text VARCHAR2(64);
2开始
3选择to_char(to_date('1970-01-01 ','yyyy-mm-dd ')+(参数/(24 * 60 * 60 * 1000)+
8 / / 86400 24-1,'yyyy-mm-dd,hh24:MI:SS))
从4到v_text双;
5回v_text;
6年底,long2date;
7 /

创建了该函数。

SQL >选择long2date(1000)从双;

(1000)long2date
--------------------------------------------------------------------------------------
08:00:00 1970-01-01

SQL >选择to_char(SYSDATE,'yyyy-mm-dd hh24:MI:char_sysdate,long2date(SS)
(SYSDATE - 8 / 24 - to_date('1970-01-01 ','yyyy-mm-dd '))* 86400000)long2date双;

char_sysdate long2date
---------------------------------------
2013-01-07 14:53:18 2013-01-07 14:53:17

在1个参数的单位,long2date()函数是毫秒。

2、添加8 / 24,因为我们在+ 08:00时区,所以增加8小时。

3,减去1 86400,因为撞击可能是跳跃秒,可以根据实际需要进行调整。在这种情况下不需要减去1 86400。

4。通过使用类似的方法,我们可以将日期转换为长型毫秒。
复制代码代码如下所示:
SQL> Col current_milli格式999999999999999;
SQL >选择to_char(SYSDATE,'yyyy-mm-dd hh24:MI:SS)current_date,(SYSDATE—
to_date('1970-01-01 ','yyyy-mm-dd '))* 86400000 current_milli双;

current_date current_milli
= =
2013-01-07 15:09:18 1357571358000