我想计算两个日期之间的时间,以显示销售剩余的时间。但是当我显示日期时,它只显示日期而不是时间(虽然我用dd / mm / yyyy hh24:mi:ss插入日期)。
SELECT date
FROM Sale
这是Sale实体。 (留下不相关的属性)
CREATE TABLE Sale
(
dateStart DATE NOT NULL,
dateEnd DATE NOT NULL
);
基本上,我只想显示销售结束前的小时,分钟,秒。所以dateEnd减去dateStart ... 我该怎么做呢?
谢谢!
答案 0 :(得分:2)
日期没有格式 - 它们是represented internally by 7 or 8 bytes。
SQL客户端格式化日期,默认情况下,SQL plus将使用NLS_DATE_FORMAT
会话参数(这是一个客户端变量,而不是全局设置的变量)。
如果您想要一致格式化的日期,则需要将其转换为字符串
SELECT TO_CHAR( datestart, 'dd/mm/yyyy hh24:mi:ss` )
FROM sale;
答案 1 :(得分:0)
with dates as
( select to_date('20160401 11:21','yyyymmdd hh24:mi') as date1,
to_date('20160327 10:13','yyyymmdd hh24:mi') as date2
from dual )
SELECT floor((date1-date2)*24)
|| ' Hours ' ||
mod(floor((date1-date2)*24*60),60)
|| ' Minutes ' ||
mod(floor((date1-date2)*24*60*60),60)
|| ' Secs ' time_difference
FROM dates;
将产生:
time_difference
-------------
121 Hours 7 Minutes 59 Secs