TO_CHAR(datetime, text) ----------------------- (returns text) TO_CHAR - the DateTime function for formating date and time outputs. This routine is inspire with the Oracle to_char(). SELECT TO_CHAR('now'::datetime, 'HH:MI:SS YYYY'); ------------- 11:57:11 1999 FROM_CHAR(text, text) --------------------- (returns DateTime) FROM_CHAR - the PostgreSQL extension routine which read non-datetime string and convert it to DateTime. This func. is inspire with the Oracle to_date() routine, but in Oracle this func. return date only and not support all keywords (format pictures). SELECT FROM_CHAR('11:57:11 1999', 'HH:MI:SS YYYY'); ---------------------------- Fri 01 Jan 11:57:11 1999 CET TO_DATE(text, text) ------------------- (returns Date) TO_DATE - the Date function which read non-datetime (non-date) string and convert it to date. All for thos func. is just as from_char(). This func. is inspire with the Oracle to_date() routine. SELECT TO_DATE('11:57:11 1999', 'HH:MI:SS YYYY'); ---------- 01-01-1999 ---------------------------------- String format-KeyWords and options: ---------------------------------- * TO_CHAR (..., 'format picture') * FROM_CHAR (..., 'format picture') * TO_DATE (..., 'format picture') (Note: In Oracle manual is format-keyword called 'format pictures'.) All keywords has suffixes (prefix or postfix), example for 2 hours: keyword: HH (hour) 'HH' --> '02' prefix: FM (fill mode) 'FMHH' --> '2' postfix: TH (ordinal number) 'HHth' --> '02nd' 'FMHHth' --> '2nd' Suffixes: -------- FM - fill mode 02 --> FMHH --> 2 January , --> FMMonth --> January, TH - upper ordinal number 02 --> HHTH --> 02ND th - lower ordinal number 02 --> HHth --> 02th KeyWords (format pictures): -------------------------- HH - hour of day (01-12) HH12 - -- // -- HH24 - hour (00-24) MI - minute (00-59) SS - socond (00-59) SSSS - seconds past midnight (0-86399) Y,YYY - year with comma (full PgSQL datetime range) digits) YYYY - year (4 and more (full PgSQL datetime range) digits) YYY - last 3 digits of year YY - last 2 digits of year Y - last digit of year MONTH - full month name (upper) (9-letters) Month - full month name - first character is upper (9-letters) month - full month name - all characters is upper (9-letters) MON - abbreviated month name (3-letters) Mon - abbreviated month name (3-letters) - first character is upper mon - abbreviated month name (3-letters) - all characters is upper MM - month (01-12) DAY - full day name (upper) (9-letters) Day - full day name - first character is upper (9-letters) day - full day name - all characters is upper (9-letters) DY - abbreviated day name (3-letters) (upper) Dy - abbreviated day name (3-letters) - first character is upper Dy - abbreviated day name (3-letters) - all character is upper DDD - day of year (001-366) DD - day of month (01-31) D - day of week (1-7; SUN=1) WW - week number of year CC - century (2-digits) Q - quarter RM - roman numeral month (I=JAN; I-XII) W - week of month J - julian day (days since January 1, 4712 BC) AC / BC: ------- TO-FROM CHAR routines support BC and AC postfix for years. You can combine BC and AC with TH. OTHER: ----- '\' - must be use as double \\ '\\HH\\MI\\SS' --> 11\45\56 '"' - string berween a quotation marks is skipen and not is parsed. If you wand write '"' to output you must use \\" '"Month: "Month' --> Month: November '\\"YYYY Month\\"' --> "1999 November " text - the PostgreSQL TO-FROM CHAR support text without '"', but " text " is fastly and you have guarantee, that this text not will interprete as keyword. WARNING: ------- You DON'T OMIT differention between fill mode (FM prefix) and standard input in FROM_CHAR (TO_DATE), because this routines can't scan your input string and conver it to Datetime. See: WRONG: FROM_CHAR('August 1999', 'Month YYYY'); RIGHT: FROM_CHAR('August 1999', 'Month YYYY'); or FROM_CHAR('August 1999', 'FMMonth YYYY'); (! Month is 9-letters string if you not set fill-mode !) --------------------------- TODO / Now is not supported: --------------------------- - spelled-out SP suffix ( 22 --> Twenty-two ) - AM/PM - not supported number to character converting TO_CHAR(number, 'format') ------------------------------------------------------------------------------- - secondary products :-) ------------------------------------------------------ ------------------------------------------------------------------------------- ORDINAL(int4, text) ------------------- * Translate number to ordinal number and return this as text * Examples: template1=> select ordinal(21212, 'TH'); ordinal ------- 21212ND template1=> select ordinal(21212, 'th'); ordinal ------- 21212nd