datetime_functions.sql.in
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. -- datetime_functions.sql --
  2. --
  3. -- SQL code to define the new date and time functions and operators
  4. --
  5. -- Copyright (c) 1998, Massimo Dal Zotto <dz@cs.unitn.it>
  6. --
  7. -- This file is distributed under the GNU General Public License
  8. -- either version 2, or (at your option) any later version.
  9. -- Define the new time functions.
  10. --
  11. create function hhmm_in(opaque) returns time
  12.   as 'MODULE_PATHNAME' 
  13.   language 'c';
  14. create function hhmm_out(opaque) returns int4
  15.   as 'MODULE_PATHNAME' 
  16.   language 'c';
  17. create function hhmm(time) returns time
  18.   as 'MODULE_PATHNAME' 
  19.   language 'c';
  20. create function time_difference(time,time) returns time
  21.   as 'MODULE_PATHNAME' 
  22.   language 'c';
  23. create function time_hours(time) returns int4
  24.   as 'MODULE_PATHNAME' 
  25.   language 'c';
  26. create function time_minutes(time) returns int4
  27.   as 'MODULE_PATHNAME' 
  28.   language 'c';
  29. create function time_seconds(time) returns int4
  30.   as 'MODULE_PATHNAME' 
  31.   language 'c';
  32. create function as_minutes(time) returns int4
  33.   as 'MODULE_PATHNAME' 
  34.   language 'c';
  35. create function as_seconds(time) returns int4
  36.   as 'MODULE_PATHNAME' 
  37.   language 'c';
  38. create function date_day(date) returns int4
  39.   as 'MODULE_PATHNAME' 
  40.   language 'c';
  41. create function date_month(date) returns int4
  42.   as 'MODULE_PATHNAME' 
  43.   language 'c';
  44. create function date_year(date) returns int4
  45.   as 'MODULE_PATHNAME' 
  46.   language 'c';
  47. create function currenttime() returns time
  48.   as 'MODULE_PATHNAME' 
  49.   language 'c';
  50. create function currentdate() returns date
  51.   as 'MODULE_PATHNAME' 
  52.   language 'c';
  53. -- Define new operator - for time.
  54. --
  55. create operator - (
  56.   leftarg=time, 
  57.   rightarg=time, 
  58.   procedure=time_difference);
  59. -- Define functions to switch from time to hhmm representation.
  60. --
  61. --   select hhmm_mode();
  62. --   select time_mode();
  63. --
  64. create function hhmm_mode() returns text
  65.   as 'update pg_type set typinput =''hhmm_in''  where typname=''time'';
  66.       update pg_type set typoutput=''hhmm_out'' where typname=''time'';
  67.       select ''hhmm_mode''::text;'
  68.   language 'sql';
  69. create function time_mode() returns text
  70.   as 'update pg_type set typinput =''time_in''  where typname=''time'';
  71.       update pg_type set typoutput=''time_out'' where typname=''time'';
  72.       select ''time_mode''::text;'
  73.   language 'sql';
  74. -- Use these to do the updates manually
  75. --
  76. -- update pg_type set typinput ='hhmm_in'  where typname='time';
  77. -- update pg_type set typoutput='hhmm_out' where typname='time';
  78. --
  79. -- update pg_type set typinput ='time_in'  where typname='time';
  80. -- update pg_type set typoutput='time_out' where typname='time';
  81. -- end of file