mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Update of contrib stuff from massimo.
This commit is contained in:
96
contrib/datetime/datetime_functions.sql.in
Normal file
96
contrib/datetime/datetime_functions.sql.in
Normal file
@ -0,0 +1,96 @@
|
||||
-- SQL code to define the new date and time functions and operators
|
||||
|
||||
-- Define the new functions
|
||||
--
|
||||
create function hhmm_in(opaque) returns time
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function hhmm_out(opaque) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function hhmm(time) returns time
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function time_difference(time,time) returns time
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function time_hours(time) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function time_minutes(time) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function time_seconds(time) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function as_minutes(time) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function as_seconds(time) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function date_day(date) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function date_month(date) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function date_year(date) returns int4
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function currenttime() returns time
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
create function currentdate() returns date
|
||||
as 'MODULE_PATHNAME'
|
||||
language 'c';
|
||||
|
||||
|
||||
-- Define a new operator - for time
|
||||
--
|
||||
create operator - (
|
||||
leftarg=time,
|
||||
rightarg=time,
|
||||
procedure=time_difference);
|
||||
|
||||
|
||||
-- Define functions to switch from time to hhmm representation
|
||||
--
|
||||
-- select hhmm_mode();
|
||||
-- select time_mode();
|
||||
--
|
||||
create function hhmm_mode() returns text
|
||||
as 'update pg_type set typinput =''hhmm_in'' where typname=''time'';
|
||||
update pg_type set typoutput=''hhmm_out'' where typname=''time''
|
||||
select ''hhmm_mode''::text'
|
||||
language 'sql';
|
||||
|
||||
create function time_mode() returns text
|
||||
as 'update pg_type set typinput =''time_in'' where typname=''time'';
|
||||
update pg_type set typoutput=''time_out'' where typname=''time''
|
||||
select ''time_mode''::text'
|
||||
language 'sql';
|
||||
|
||||
|
||||
-- Use these to do the updates manually
|
||||
--
|
||||
-- update pg_type set typinput ='hhmm_in' where typname='time';
|
||||
-- update pg_type set typoutput='hhmm_out' where typname='time';
|
||||
--
|
||||
-- update pg_type set typinput ='time_in' where typname='time';
|
||||
-- update pg_type set typoutput='time_out' where typname='time';
|
||||
|
||||
-- end of file
|
Reference in New Issue
Block a user