pears.NetShiftDateTime
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE FUNCTION "pears"."NetShiftDateTime"( IN "pDate" DATE,IN "pTimeFrom" TIME,IN "pTimeTo" TIME,IN "pFromOrTo" CHAR(1) ) RETURNS TIMESTAMP deterministic BEGIN DECLARE "rv" TIMESTAMP; IF "ptimefrom" IS NULL OR "ptimeto" IS NULL THEN IF "pFromOrTo" = 'F' THEN SET "rv" = "pdate" ELSE SET "rv" = "pdate"+CAST('23:59:59' AS TIME) END IF ELSE IF "pFromOrTo" = 'F' THEN SET "rv" = "pdate"+"pTimeFrom" ELSE IF "pTimeFrom" > "pTimeTo" THEN SET "pdate" = "pdate"+1 END IF; SET "rv" = "pdate"+"pTimeTo" END IF END IF; RETURN "rv" END /* TEST select NetShiftDateTime('2012-01-31',null,null,'f') as x; expect x=31/01/2012; select NetShiftDateTime('2012-01-31',null,null,'t') as x; expect x=31/01/2012 23:59*; select NetShiftDateTime('2012-01-31','09:00','17:30','f') as x; expect x=31/01/2012 09:00*; select NetShiftDateTime('2012-01-31','09:00','17:30','t') as x; expect x=31/01/2012 17:30*; select NetShiftDateTime('2012-01-31','22:00','06:30','f') as x; expect x=31/01/2012 22:00*; select NetShiftDateTime('2012-01-31','22:00','06:30','t') as x; expect x=01/02/2012 06:30*; */