psql (9.6.7, server 11.3) on linux
In the copy/paste below, first 2 lines returned by a select on the view, why didn't it sort on start_datetime correctly ? I would think that the one started on 04-08 would come before the one on 04-09 ?
dvdb=> \d sim_phases;
Table "dvm.sim_phases"
Column | Type | Modifiers
----------------+--------------------------+-----------
sj_id | integer |
sim_phase_name | character varying |
status | character varying |
error_message | character varying |
start_datetime | timestamp with time zone |
end_datetime | timestamp with time zone |
duration_hrs | numeric(5,2) |
Check constraints:
"sim_phases_name_check" CHECK (sim_phase_name::text = ANY (ARRAY['presim'::character varying::text, 'runsim'::character varying::text, 'postsim'::character varying::text, NULL::character varying::text]))
"sim_phases_status_check" CHECK (status::text = ANY (ARRAY['in_progress'::character varying, 'completed'::character varying, 'passed'::character varying, 'failed'::character varying, NULL::character varying]::text[]))
Foreign-key constraints:
"sim_phases_sj_id_fkey" FOREIGN KEY (sj_id) REFERENCES sim_jobs(sj_id) ON DELETE CASCADE
dvdb=> create or replace view spview as (select sj_id,sim_phase_name,status,start_datetime,end_datetime,duration_hrs from dvm.sim_phases order by sj_id,start_datetime);
CREATE VIEW
dvdb=> select * from spview where sj_id in (select sj_id from sjview where dvm_id = 1102);
sj_id | sim_phase_name | status | start_datetime | end_datetime | duration_hrs
-------+----------------+-------------+------------------------+------------------------+--------------
6269 | runsim | in_progress | 2020-04-09 03:39:13-04 | |
6269 | presim | completed | 2020-04-08 23:11:21-04 | 2020-04-09 03:39:13-04 | 4.46
6267 | runsim | in_progress | 2020-04-09 02:21:38-04 | |
6267 | presim | completed | 2020-04-08 23:11:21-04 | 2020-04-09 02:21:38-04 | 3.17
Table "dvm.sim_phases"
Column | Type | Modifiers
----------------+--------------------------+-----------
sj_id | integer |
sim_phase_name | character varying |
status | character varying |
error_message | character varying |
start_datetime | timestamp with time zone |
end_datetime | timestamp with time zone |
duration_hrs | numeric(5,2) |
Check constraints:
"sim_phases_name_check" CHECK (sim_phase_name::text = ANY (ARRAY['presim'::character varying::text, 'runsim'::character varying::text, 'postsim'::character varying::text, NULL::character varying::text]))
"sim_phases_status_check" CHECK (status::text = ANY (ARRAY['in_progress'::character varying, 'completed'::character varying, 'passed'::character varying, 'failed'::character varying, NULL::character varying]::text[]))
Foreign-key constraints:
"sim_phases_sj_id_fkey" FOREIGN KEY (sj_id) REFERENCES sim_jobs(sj_id) ON DELETE CASCADE
dvdb=> create or replace view spview as (select sj_id,sim_phase_name,status,start_datetime,end_datetime,duration_hrs from dvm.sim_phases order by sj_id,start_datetime);
CREATE VIEW
dvdb=> select * from spview where sj_id in (select sj_id from sjview where dvm_id = 1102);
sj_id | sim_phase_name | status | start_datetime | end_datetime | duration_hrs
-------+----------------+-------------+------------------------+------------------------+--------------
6269 | runsim | in_progress | 2020-04-09 03:39:13-04 | |
6269 | presim | completed | 2020-04-08 23:11:21-04 | 2020-04-09 03:39:13-04 | 4.46
6267 | runsim | in_progress | 2020-04-09 02:21:38-04 | |
6267 | presim | completed | 2020-04-08 23:11:21-04 | 2020-04-09 02:21:38-04 | 3.17