相关疑难解决方法(0)

计算Oracle中两个时间戳之间的差异,以毫秒为单位

如何计算Oracle中两个时间戳之间的时差(以毫秒为单位)?

sql oracle datetime

51
推荐指数
4
解决办法
32万
查看次数

如何获取Oracle 11g中两个日期之间的天数?

我试图在Oracle 11g中找到两个日期之间的整数天数.

我可以靠近做

select sysdate - to_date('2009-10-01', 'yyyy-mm-dd') from dual
Run Code Online (Sandbox Code Playgroud)

但这会返回一个间隔,而我还没有成功将其转换为整数.

编辑:显然在10g中,这将以整数形式返回天数.

sql oracle oracle11g

31
推荐指数
3
解决办法
21万
查看次数

Oracle中的DATEDIFF函数

我需要使用Oracle,但DATEDIFF函数在Oracle DB中不起作用.

如何在Oracle中编写以下代码?我看到了一些使用INTERVAL或TRUNC的例子.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
Run Code Online (Sandbox Code Playgroud)

sql oracle select datediff

28
推荐指数
3
解决办法
27万
查看次数

在Oracle中减去日期 - 数字或间隔数据类型?

我对Oracle DATE和INTERVAL数据类型的一些内部工作方式有疑问.根据Oracle 11.2 SQL Reference,当您减去2个DATE数据类型时,结果将是NUMBER数据类型.

粗略测试,这似乎是真的:

CREATE TABLE test (start_date DATE);
INSERT INTO test (start_date) VALUES (date'2004-08-08');
SELECT (SYSDATE - start_date) from test;
Run Code Online (Sandbox Code Playgroud)

将返回NUMBER数据类型.

但现在如果你这样做:

SELECT (SYSDATE - start_date) DAY(5) TO SECOND from test;
Run Code Online (Sandbox Code Playgroud)

你得到一个INTERVAL数据类型.换句话说,Oracle可以将NUMBER从DATE减法转换为INTERVAL类型.

所以现在我想我可以尝试直接在括号中输入NUMBER数据类型(而不是做'SYSDATE - start_date',这会导致NUMBER反正):

SELECT (1242.12423) DAY(5) TO SECOND from test;
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:

ORA-30083: syntax error was found in interval value expression
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:这里发生了什么?似乎减去日期应该导致NUMBER(如SELECT语句#1中所示),它不能自动转换为INTERVAL类型(如SELECT语句#3中所示).但是,如果使用DATE减法表达式而不是放入原始NUMBER(SELECT语句#2),Oracle似乎能够以某种方式做到这一点.

谢谢

sql oracle plsql date oracle11g

21
推荐指数
2
解决办法
12万
查看次数

如何获得2个日期之间的时差(以小时为单位)

我想要获得2个用户之间的时差,我需要几小时的差异.

我试图使用DATEDIFF函数,但这是错误的.

这是我的代码:

SELECT DATEDIFF(*,  
(SELECT max(u1.time_c)
FROM users u)
,
(SELECT max(u2.time_c)
FROM users u2) 
Run Code Online (Sandbox Code Playgroud)

mysql sql oracle

9
推荐指数
2
解决办法
2万
查看次数

Oracle日期差异SQL查询

可能重复:
计算Oracle SQL中2个日期/时间之间的差异

我有一张表,其中维护了PurchasedDate.我必须从系统中获取日期并计算日期差异.由于我在Oracle工作,datediff()没有给出结果.

样品表:

ProductID  Date
P101       31-DEC-2012
P102       29-DEC-2011

如果今天返回P102,差异应为10.

这是一个详细的描述

BillID     ProductID   Date
101          P101        31-DEC-2012
101          P102        31-DEC-2012
102          P405        29-JUN-2012
102          P210        29-JUN-2012
105          P205         2-MAY-2012

如果客户使用BillNo 101重新调用产品P101,则系统应计算返回日期(系统日期)与购买日期之间的差异.如果P101在2012年1月8日返回,则答案应为10

sql oracle date-arithmetic

3
推荐指数
1
解决办法
6万
查看次数

标签 统计

oracle ×6

sql ×6

oracle11g ×2

date ×1

date-arithmetic ×1

datediff ×1

datetime ×1

mysql ×1

plsql ×1

select ×1