2017-10-14 15 views
0

Oracleデータベースを使用しています。以下は、午前7時から午前7時まで、翌日午前7時(全24時間)に終了するタイムシートの詳細を処理する機器です。私は日付の賢明な昇順と時間の午前7時から翌日の午前7時までと同じようにレポートが必要です。同じことについて助言してください。Oracleデータ日付と時刻で並べ替え

WorkDateはDate型であり、2つの列がVARCHAR2型の時から、結果セットをソートする日付にキャストと

CREATE TABLE TT 
(
WorkDate DATE, 
FromTime VARCHAR2(100 BYTE), 
ToTime VARCHAR2(100 BYTE) 

) 

Work date From To 
8/8/2017 7:00 7:25 
8/8/2017 7:25 12:35 
8/8/2017 12:35 21:55 
8/8/2017 21:55 1:30 
8/8/2017 1:30 7:00 
8/9/2017 7:00 7:25 
8/9/2017 7:25 12:35 
8/9/2017 12:35 21:55 
8/9/2017 21:55 1:30 
8/9/2017 1:30 7:00 
+0

これらの列はどのタイプですか?あなたのテーブルのDDLを共有できますか? – Mureinik

+0

WorkDateは日付型で、残りはvarchar2 – Rakesh

+0

Oracleを使用している場合、Microsoft SQL Serverタグで質問にタグを付けたのはなぜですか? –

答えて

2

唯一の問題は、7:25がアルファベットの12:35の後に来ることです。代わりに07:25が必要です。

select * 
from mytable 
order by workdate, lpad(fromtime, 5, '0'); 
1

連結した日付です休みます。

select * from tt 
order by to_date(to_char(work_date, 'mm/dd/yyyy') || ' ' || from_date, 'mm/dd/yyyy hh24:mi') 
/

最も簡単な方法は、アプリケーションが、物事に苦労して行う必要がある理由を正当な理由がある日付時刻としてFROMとTOを保存することであったが、間違いなくいるだろう。