2016-04-08 19 views
-2

2つの日付の間の時間を計算して、売り上げにどれだけの時間が残っているかを表示したいと思います。しかし、私が日付を表示するときには、時刻ではなく日付のみが表示されます(日付はdd/mm/yyyy hh24:mi:ssで挿入されます)。Oracle SQLの日付に時間が表示されませんか?どのように2つの日付の間の時間を表示するには?

SELECT date 
FROM Sale 

これは販売エンティティです。

CREATE TABLE Sale 
(
    dateStart   DATE NOT NULL, 
    dateEnd    DATE NOT NULL 
); 

基本的に、私はちょうど販売がオーバーになるまで左時間、分、秒を表示したい(左unrelevantはアウト属性)。だからdateEndからdateStartを差し引いて... どうすればこのことに行きますか?

ありがとうございます!

+0

に変換する必要がありますなぜSQLタグが削除されました: – SJ19

+1

oをあなたが探してみましたか?この質問は(他の中でも)重複しているようです[this](http://stackoverflow.com/questions/1096853/calculate-difference-between-2-date-times-in-oracle-sql9) – Aleksej

答えて

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 
1

日付はフォーマットを持っていない - 彼らはrepresented internally by 7 or 8 bytesです。

日付をフォーマットするSQLクライアントであり、デフォルトでSQLプラスはNLS_DATE_FORMATセッションパラメータ(これはグローバルに設定されていないクライアント変数です)を使用します。

あなたは一貫してフォーマットされた日付を望むなら、あなたは文字列

SELECT TO_CHAR(datestart, 'dd/mm/yyyy hh24:mi:ss`) 
FROM sale; 
+0

Cool I didnそれを知っている、しかし、私はどのように2つのdatetimesの時間差を計算するつもりですか? TODATE(TO_CHAR)? – SJ19

+0

@SJacobs dcieslakの[回答](http://stackoverflow.com/a/36494839/1509264)または[この質問](http://stackoverflow.com/q/1096853/1509264)または[この質問](http ://stackoverflow.com/questions/7943055/oracle-date-difference-to-get-number-of- years)。 – MT0

関連する問題