当前位置: 首页 > 编程笔记 >

在数据库里将毫秒转换成date格式的方法

马臻
2023-03-14
本文向大家介绍在数据库里将毫秒转换成date格式的方法,包括了在数据库里将毫秒转换成date格式的方法的使用技巧和注意事项,需要的朋友参考一下

在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。
一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下:

mysql> select from_unixtime(1, '%Y-%m-%d %H:%i:%S'); 
+---------------------------------------+ 
| from_unixtime(1, '%Y-%m-%d %H:%i:%S') | 
+---------------------------------------+ 
| 1970-01-01 08:00:01 | 
+---------------------------------------+ 
1 row in set (0.00 sec)


函数from_unixtime中的参数单位是秒,由于我们在+08:00时区,所有最终显示的结果是1970-01-01 08:00:01。
二、在Oracle中,由于没有相应的内置函数,我们只能自定义一个函数来完成转换。

SQL> create or replace function long2date (param in long) return varchar2 as 
v_text varchar2(64); 
2 begin 
3 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') 
4 into v_text from dual; 
5 return v_text; 
6 end long2date; 
7 / 

函数已创建。 

SQL> select long2date(1000) from dual; 

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

SQL> select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') char_sysdate, long2date( 
(sysdate - 8/24 - to_date('1970-01-01','YYYY-MM-DD')) * 86400000) long2date from dual; 

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、利用类似的方法,我们可以将日期转换成long型的毫秒数。

SQL> col current_milli format 999999999999999; 
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; 

CURRENT_DATE CURRENT_MILLI 
------------------- ---------------- 
2013-01-07 15:09:18 1357571358000
 类似资料:
  • 问题内容: 我正在编写一个赛车应用程序,想要将大量毫秒转换为minutes:seconds.milliseconds(例如)。目前,我只是通过数学()进行运算,然后求余数并进一步除法,依此类推,但是我发现它时不时关闭1毫秒。我知道这听起来似乎没什么大不了的,但是我试图找到和的平均值,然后返回,这意味着它输入不正确,而应用程序的其余部分无法处理。 有没有一种方法使用或格式化毫秒到MM或类似的东西:s

  • 问题内容: 如何获得日期的毫秒时间?我有以下代码。 此变量beginupd包含格式 2011年10月12日星期三11:55:03 GMT + 05:30 现在如何在Long数据类型中将此格式转换为毫秒时间?非常感谢您的任何帮助,并在此先感谢… 问题答案: JavaDoc指出: 返回自此Date对象表示的自格林尼治标准时间1970年1月1日00:00:00以来的毫秒数。

  • 问题内容: 这是我的尝试 因此,当我尝试类似的值时3600000ms,我得到01:59:00,这是错误的,因为它应该是01:00:00。显然我的逻辑有问题,但是目前,我看不出它是什么! 有人可以帮忙吗? 编辑 固定它。这是格式化毫秒hh:mm:ss格式的正确方法 问题是这样的TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(milli

  • 本文向大家介绍C#实现毫秒转换成时分秒的方法,包括了C#实现毫秒转换成时分秒的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现毫秒转换成时分秒的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 我有毫秒。我需要将其转换为日期格式 例: 2019年10月23日 如何实现呢? 问题答案: 需尝试以下示例代码: 希望对你有帮助…

  • 问题内容: 如何在Linux中手动将抖动转换为毫秒,反之亦然?我知道内核2.6具有此功能,但是我正在研究2.4(家庭作业),尽管我看了一下代码,但它使用了许多宏常量,我不知道它们是否在2.4中定义。 问题答案: 如先前的回答所述,增量的速率是固定的。 为接受的函数指定时间的标准方法是使用常数。 那是Hertz的缩写,或每秒的刻度数。在计时器滴答设置为1ms的系统上,HZ = 1000。一些发行版或