mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
as attache of this mail is patch (to the main tree) with to_char's
family functions. Contain: conversion from a datetype to formatted text: to_char( datetime, text) to_char( timestamp, text) to_char( int4, text) to_char( int8, text) to_char( float4, text) to_char( float8, text) to_char( numeric, text) vice versa: to_date ( text, text) to_datetime ( text, text) to_timestamp ( text, text) to_number ( text, text) (convert to numeric) PostgreSQL to_char is very compatible with Oracle's to_char(), but not total exactly (now). Small differentions are in number formating. It will fix in next to_char() version. ! If will this patch aplly to the main tree, must be delete the current to_char version in contrib (directory "dateformat" and note in contrib's README), this patch not erase it (sorry Bruce). The patch patching files: doc/src/sgml/func.sgml ^^^^^^^^ Hmm, I'm not sure if my English... :( Check it anyone (volunteer)? Thomas, it is right? SGML is not my primary lang and compile the current PG docs tree is very happy job (hard variables setting in docs/sgml/Makefile --> HSTYLE= /home/users/t/thomas/.... :-) What add any definition to global configure.in and set Makefiles in docs tree via ./configure? src/backend/utils/adt/Makefile src/backend/utils/adt/formatting.c src/include/catalog/pg_proc.h src/include/utils/formatting.h Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
# Makefile for utils/adt
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/backend/utils/adt/Makefile,v 1.32 2000/01/19 02:58:56 petere Exp $
|
||||
# $Header: /cvsroot/pgsql/src/backend/utils/adt/Makefile,v 1.33 2000/01/25 23:53:51 momjian Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@ -31,7 +31,7 @@ OBJS = acl.o arrayfuncs.o arrayutils.o bool.o cash.o char.o chunk.o \
|
||||
regexp.o regproc.o ruleutils.o selfuncs.o sets.o \
|
||||
tid.o timestamp.o varchar.o varlena.o version.o \
|
||||
network.o mac.o inet_net_ntop.o inet_net_pton.o \
|
||||
ri_triggers.o pg_lzcompress.o pg_locale.o
|
||||
ri_triggers.o pg_lzcompress.o pg_locale.o formatting.o
|
||||
|
||||
all: SUBSYS.o
|
||||
|
||||
|
3157
src/backend/utils/adt/formatting.c
Normal file
3157
src/backend/utils/adt/formatting.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_proc.h,v 1.116 2000/01/24 07:16:52 tgl Exp $
|
||||
* $Id: pg_proc.h,v 1.117 2000/01/25 23:53:52 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The script catalog/genbki.sh reads this file and generates .bki
|
||||
@ -2343,6 +2343,30 @@ DESCR("larger of two numbers");
|
||||
DATA(insert OID = 1769 ( numeric_cmp PGUID 11 f t t 2 f 23 "1700 1700" 100 0 0 100 numeric_cmp - ));
|
||||
DESCR("compare two numbers");
|
||||
|
||||
/* formatting */
|
||||
DATA(insert OID = 1770 ( to_char PGUID 11 f t f 2 f 25 "1184 25" 100 0 0 100 datetime_to_char - ));
|
||||
DESCR("convert / formatting datetime to text");
|
||||
DATA(insert OID = 1771 ( to_char PGUID 11 f t f 2 f 25 "1296 25" 100 0 0 100 timestamp_to_char - ));
|
||||
DESCR("convert / formatting timestamp to text");
|
||||
DATA(insert OID = 1772 ( to_char PGUID 11 f t f 2 f 25 "1700 25" 100 0 0 100 numeric_to_char - ));
|
||||
DESCR("convert / formatting numeric to text");
|
||||
DATA(insert OID = 1773 ( to_char PGUID 11 f t f 2 f 25 "23 25" 100 0 0 100 int4_to_char - ));
|
||||
DESCR("convert / formatting int4 to text");
|
||||
DATA(insert OID = 1774 ( to_char PGUID 11 f t f 2 f 25 "20 25" 100 0 0 100 int8_to_char - ));
|
||||
DESCR("convert / formatting int8 to text");
|
||||
DATA(insert OID = 1775 ( to_char PGUID 11 f t f 2 f 25 "700 25" 100 0 0 100 float4_to_char - ));
|
||||
DESCR("convert / formatting float4 to text");
|
||||
DATA(insert OID = 1776 ( to_char PGUID 11 f t f 2 f 25 "701 25" 100 0 0 100 float8_to_char - ));
|
||||
DESCR("convert / formatting float8 to text");
|
||||
DATA(insert OID = 1777 ( to_number PGUID 11 f t f 2 f 1700 "25 25" 100 0 0 100 numeric_to_number - ));
|
||||
DESCR("convert text to numeric");
|
||||
DATA(insert OID = 1778 ( to_datetime PGUID 11 f t f 2 f 1184 "25 25" 100 0 0 100 to_datetime - ));
|
||||
DESCR("convert text to datetime");
|
||||
DATA(insert OID = 1779 ( to_timestamp PGUID 11 f t f 2 f 1296 "25 25" 100 0 0 100 to_timestamp - ));
|
||||
DESCR("convert text to datetime");
|
||||
DATA(insert OID = 1780 ( to_date PGUID 11 f t f 2 f 1082 "25 25" 100 0 0 100 to_date - ));
|
||||
DESCR("convert text to date");
|
||||
|
||||
|
||||
/*
|
||||
* prototypes for functions pg_proc.c
|
||||
|
31
src/include/utils/formatting.h
Normal file
31
src/include/utils/formatting.h
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
* formatting.h
|
||||
*
|
||||
* $Id: formatting.h,v 1.1 2000/01/25 23:53:56 momjian Exp $
|
||||
*
|
||||
*
|
||||
* The PostgreSQL routines for a DateTime/int/float/numeric formatting,
|
||||
* inspire with Oracle TO_CHAR() / TO_DATE() / TO_NUMBER() routines.
|
||||
*
|
||||
* 1999 Karel Zak "Zakkr"
|
||||
*
|
||||
* -----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef _FORMATTING_H_
|
||||
#define _FORMATTING_H_
|
||||
|
||||
extern text *datetime_to_char(DateTime *dt, text *fmt);
|
||||
extern text *timestamp_to_char(time_t dt, text *fmt);
|
||||
extern DateTime *to_datetime(text *date_str, text *fmt);
|
||||
extern time_t to_timestamp(text *date_str, text *fmt);
|
||||
extern DateADT to_date(text *date_str, text *fmt);
|
||||
extern Numeric numeric_to_number(text *value, text *fmt);
|
||||
extern text *numeric_to_char(Numeric value, text *fmt);
|
||||
extern text *int4_to_char(int32 value, text *fmt);
|
||||
extern text *int8_to_char(int64 *value, text *fmt);
|
||||
extern text *float4_to_char(float32 value, text *fmt);
|
||||
extern text *float8_to_char(float64 value, text *fmt);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user