mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			146 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| -- ODBC.sql
 | |
| --
 | |
| 
 | |
| --
 | |
| -- Character string manipulation
 | |
| --
 | |
| 
 | |
| --
 | |
| -- Extensions for ODBC compliance in v7.0.
 | |
| -- In the current driver, ODBC functions must map directly into a
 | |
| -- Postgres function. So in some cases we must create a compatible
 | |
| -- function.
 | |
| --
 | |
| 
 | |
| -- truncate on the left
 | |
| CREATE FUNCTION ltrunc(text, integer)
 | |
|     RETURNS text
 | |
|     AS 'SELECT substring($1 FROM 1 FOR $2)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| -- truncate on the right
 | |
| CREATE FUNCTION rtrunc(text, integer)
 | |
|     RETURNS text
 | |
|     AS 'SELECT substring($1 FROM (char_length($1)-($2)+1) FOR $2)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION space(integer)
 | |
|     RETURNS text
 | |
|     AS 'SELECT lpad('''', $1, '' '')'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- Mathematical functions
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION truncate(numeric,integer)
 | |
|     RETURNS numeric
 | |
|     AS 'SELECT trunc($1, $2)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- Date/time functions for v7.0
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION curdate()
 | |
|     RETURNS date
 | |
|     AS 'SELECT CAST(''now'' AS date)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION curtime()
 | |
|     RETURNS time
 | |
|     AS 'SELECT CAST(''now'' AS time)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION dayname(timestamp)
 | |
|     RETURNS text
 | |
|     AS 'SELECT to_char($1,''Day'')'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION dayofmonth(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT  CAST(date_part(''day'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION dayofweek(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT ( CAST(date_part(''dow'', $1) AS integer) + 1)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION dayofyear(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT  CAST(date_part(''doy'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION hour(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''hour'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION minute(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''minute'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION odbc_month(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''month'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION monthname(timestamp)
 | |
|     RETURNS text
 | |
|     AS 'SELECT to_char($1, ''Month'')'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION quarter(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''quarter'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION second(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''second'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| /*
 | |
| -- The first argument is an integer constant denoting the units
 | |
| -- of the second argument. Until we know the actual values, we
 | |
| -- cannot implement these. - thomas 2000-04-11
 | |
| CREATE FUNCTION timestampadd(integer,integer,timestamp)
 | |
|     RETURNS timestamp
 | |
|     AS 'SELECT CAST(($3 + ($2 * $1)) AS timestamp)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION timestampdiff(integer,integer,timestamp)
 | |
|     RETURNS timestamp
 | |
|     AS 'SELECT CAST(($3 + ($2 * $1)) AS timestamp)'
 | |
|     LANGUAGE 'SQL';
 | |
| */
 | |
| 
 | |
| CREATE FUNCTION week(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''week'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION year(timestamp)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT CAST(date_part(''year'', $1) AS integer)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- System functions.
 | |
| --
 | |
| 
 | |
| /*
 | |
| CREATE FUNCTION database()
 | |
|     RETURNS text
 | |
|     AS 'SELECT ...'
 | |
|     LANGUAGE 'SQL';
 | |
| */
 | |
| 
 | |
| CREATE FUNCTION odbc_user()
 | |
|     RETURNS text
 | |
|     AS 'SELECT CAST(USER AS text)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 |