9.8. ФÑнкÑии ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ #
ФÑнкÑии ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² Postgres Pro пÑедоÑÑавлÑÑÑ Ð±Ð¾Ð³Ð°ÑÑй Ð½Ð°Ð±Ð¾Ñ Ð¸Ð½ÑÑÑÑменÑов Ð´Ð»Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑамÑÑ ÑазнÑÑ Ñипов даннÑÑ (даÑа/вÑемÑ, Ñелое, ÑиÑла Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей и ÑикÑиÑованной ÑоÑкой) в ÑоÑмаÑиÑованнÑе ÑÑÑоки и обÑаÑно. ÐÑе они пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе 9.26. ÐÑе ÑÑи ÑÑнкÑии ÑледÑÐµÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑоглаÑениÑ: в пеÑвом аÑгÑменÑе пеÑедаÑÑÑÑ Ð·Ð½Ð°Ñение, коÑоÑое нÑжно оÑÑоÑмаÑиÑоваÑÑ, а во вÑоÑом â Ñаблон, опÑеделÑÑÑий ÑоÑÐ¼Ð°Ñ Ð²Ð²Ð¾Ð´Ð° или вÑвода.
ТаблиÑа 9.26. ФÑнкÑии ÑоÑмаÑиÑованиÑ
ФÑнкÑÐ¸Ñ ÐпиÑание ÐÑимеÑ(Ñ) |
|---|
ÐÑеобÑазÑÐµÑ Ð²ÑÐµÐ¼Ñ Ð² ÑÑÑÐ¾ÐºÑ ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ.
|
ÐÑеобÑазÑÐµÑ Ð¸Ð½ÑеÑвал в ÑÑÑÐ¾ÐºÑ ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ.
|
ÐÑеобÑазÑÐµÑ ÑиÑло в ÑÑÑÐ¾ÐºÑ ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ; поддеÑживаÑÑÑÑ ÑипÑ
|
ÐÑеобÑазÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð² даÑÑ ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ.
|
ÐÑеобÑазÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð² ÑиÑло ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ.
|
ÐÑеобÑазÑÐµÑ ÑÑÑÐ¾ÐºÑ Ð² знаÑение вÑемени ÑоглаÑно Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑоÑмаÑÑ. (См. Ñакже
|
ÐодÑказка
ФÑнкÑии to_timestamp и to_date пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ð²Ñ
однÑми ÑоÑмаÑами, коÑоÑÑе нелÑÐ·Ñ Ð¿ÑеобÑазоваÑÑ Ð¿ÑоÑÑÑм пÑиведением. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва ÑÑандаÑÑнÑÑ
ÑоÑмаÑов даÑÑ/вÑемени ÑабоÑÐ°ÐµÑ Ð¿ÑоÑÑое пÑиведение иÑÑ
одной ÑÑÑоки к ÑÑебÑÐµÐ¼Ð¾Ð¼Ñ ÑÐ¸Ð¿Ñ Ð¸ иÑполÑзоваÑÑ ÐµÐ³Ð¾ гоÑаздо легÑе. Так же и ÑÑнкÑÐ¸Ñ to_number Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи иÑполÑзоваÑÑ Ð´Ð»Ñ ÑÑандаÑÑнÑÑ
пÑедÑÑавлений ÑиÑел.
Шаблон вÑвода to_char Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑÑд кодов, коÑоÑÑе ÑаÑпознаÑÑÑÑ Ð¿Ñи ÑоÑмаÑиÑовании и заменÑÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑими даннÑми в завиÑимоÑÑи Ð¾Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ знаÑениÑ. ÐÑбой ÑекÑÑ, коÑоÑÑй не ÑвлÑеÑÑÑ ÐºÐ¾Ð´Ð¾Ð¼, пÑоÑÑо копиÑÑеÑÑÑ Ð² неизменном виде. ÐодобнÑм обÑазом в ÑÑÑоке Ñаблона ввода (Ð´Ð»Ñ Ð´ÑÑгиÑ
ÑÑнкÑий) ÑаблоннÑе ÐºÐ¾Ð´Ñ Ð¾Ð¿ÑеделÑÑÑ, какие знаÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾ÑÑÑпаÑÑ Ð¸Ð· вÑ
одной ÑÑÑоки. ÐÑли в ÑÑÑоке Ñаблона еÑÑÑ ÑимволÑ, не оÑноÑÑÑиеÑÑ Ðº ÑаблоннÑм кодам, ÑооÑвеÑÑÑвÑÑÑие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð²Ð¾ вÑ
одной ÑÑÑоке пÑоÑÑо пÑопÑÑкаÑÑÑÑ (вне завиÑимоÑÑи Ð¾Ñ Ñого, ÑовпадаÑÑ Ð»Ð¸ они Ñ Ñимволами в ÑÑÑоке Ñаблона).
ÐÑе ÐºÐ¾Ð´Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°ÑÑ Ð¸ вÑемени пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе 9.27.
ТаблиÑа 9.27. ÐÐ¾Ð´Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°ÑÑ/вÑемени
| Ðод | ÐпиÑание |
|---|---|
HH | ÑÐ°Ñ Ð´Ð½Ñ (01â12) |
HH12 | ÑÐ°Ñ Ð´Ð½Ñ (01â12) |
HH24 | ÑÐ°Ñ Ð´Ð½Ñ (00â23) |
MI | минÑÑа (00â59) |
SS | ÑекÑнда (00â59) |
MS | миллиÑекÑнда (000â999) |
US | микÑоÑекÑнда (000000â999999) |
FF1 | деÑÑÑÐ°Ñ Ð´Ð¾Ð»Ñ ÑекÑÐ½Ð´Ñ (0â9) |
FF2 | ÑоÑÐ°Ñ Ð´Ð¾Ð»Ñ ÑекÑÐ½Ð´Ñ (00â99) |
FF3 | миллиÑекÑнда (000â999) |
FF4 | деÑÑÑиÑÑÑÑÑÐ½Ð°Ñ Ð´Ð¾Ð»Ñ ÑекÑÐ½Ð´Ñ (0000â9999) |
FF5 | ÑÑоÑÑÑÑÑÐ½Ð°Ñ Ð´Ð¾Ð»Ñ ÑекÑÐ½Ð´Ñ (00000â99999) |
FF6 | микÑоÑекÑнда (000000â999999) |
SSSS, SSSSS | ÑекÑÐ½Ð´Ñ Ð¿Ð¾Ñле полÑноÑи (0â86399) |
AM, am, PM или pm | обознаÑение вÑемени до/поÑле полÑÐ´Ð½Ñ (без ÑоÑек) |
A.M., a.m., P.M. или p.m. | обознаÑение вÑемени до/поÑле полÑÐ´Ð½Ñ (Ñ ÑоÑками) |
Y,YYY | год (4 или более ÑиÑÑ) Ñ ÑазделиÑелем |
YYYY | год (4 или более ÑиÑÑ) |
YYY | поÑледние 3 ÑиÑÑÑ Ð³Ð¾Ð´Ð° |
YY | поÑледние 2 ÑиÑÑÑ Ð³Ð¾Ð´Ð° |
Y | поÑледнÑÑ ÑиÑÑа года |
IYYY | неделÑнÑй год по ISO 8601 (4 или более ÑиÑÑ) |
IYY | поÑледние 3 ÑиÑÑÑ Ð½ÐµÐ´ÐµÐ»Ñного года по ISO 8601 |
IY | поÑледние 2 ÑиÑÑÑ Ð½ÐµÐ´ÐµÐ»Ñного года по ISO 8601 |
I | поÑледнÑÑ ÑиÑÑа неделÑного года по ISO 8601 |
BC, bc, AD или ad | обознаÑение ÑÑÑ (без ÑоÑек) |
B.C., b.c., A.D. или a.d. | обознаÑение ÑÑÑ (Ñ ÑоÑками) |
MONTH | полное название меÑÑÑа в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе (дополненное пÑобелами до 9 Ñимволов) |
Month | полное название меÑÑÑа Ñ Ð±Ð¾Ð»ÑÑой бÑÐºÐ²Ñ (дополненное пÑобелами до 9 Ñимволов) |
month | полное название меÑÑÑа в нижнем ÑегиÑÑÑе (дополненное пÑобелами до 9 Ñимволов) |
MON | ÑокÑаÑÑнное название меÑÑÑа в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
Mon | ÑокÑаÑÑнное название меÑÑÑа Ñ Ð±Ð¾Ð»ÑÑой бÑÐºÐ²Ñ (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
mon | ÑокÑаÑÑнное название меÑÑÑа в нижнем ÑегиÑÑÑе (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
MM | Ð½Ð¾Ð¼ÐµÑ Ð¼ÐµÑÑÑа (01â12) |
DAY | полное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе (дополненное пÑобелами до 9 Ñимволов) |
Day | полное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ Ñ Ð±Ð¾Ð»ÑÑой бÑÐºÐ²Ñ (дополненное пÑобелами до 9 Ñимволов) |
day | полное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ в нижнем ÑегиÑÑÑе (дополненное пÑобелами до 9 Ñимволов) |
DY | ÑокÑаÑÑнное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
Dy | ÑокÑаÑÑнное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ Ñ Ð±Ð¾Ð»ÑÑой бÑÐºÐ²Ñ (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
dy | ÑокÑаÑÑнное название Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ в нижнем ÑегиÑÑÑе (3 бÑÐºÐ²Ñ Ð² английÑком; в дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ) |
DDD | Ð½Ð¾Ð¼ÐµÑ Ð´Ð½Ñ Ð² Ð³Ð¾Ð´Ñ (001â366) |
IDDD | Ð½Ð¾Ð¼ÐµÑ Ð´Ð½Ñ Ð² Ð³Ð¾Ð´Ñ Ð¿Ð¾ ISO 8601 (001â371; пеÑвÑй Ð´ÐµÐ½Ñ Ð³Ð¾Ð´Ð° â понеделÑник пеÑвой недели по ISO) |
DD | Ð´ÐµÐ½Ñ Ð¼ÐµÑÑÑа (01â31) |
D | Ð½Ð¾Ð¼ÐµÑ Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸, ÑÑиÑÐ°Ñ Ñ Ð²Ð¾ÑкÑеÑенÑÑ (1) до ÑÑббоÑÑ (7) |
ID | Ð½Ð¾Ð¼ÐµÑ Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ по ISO 8601, ÑÑиÑÐ°Ñ Ñ Ð¿Ð¾Ð½ÐµÐ´ÐµÐ»Ñника (1) до воÑкÑеÑенÑÑ (7) |
W | Ð½ÐµÐ´ÐµÐ»Ñ Ð¼ÐµÑÑÑа (1â5) (пеÑÐ²Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ Ð½Ð°ÑинаеÑÑÑ Ð² пеÑвÑй Ð´ÐµÐ½Ñ Ð¼ÐµÑÑÑа) |
WW | Ð½Ð¾Ð¼ÐµÑ Ð½ÐµÐ´ÐµÐ»Ð¸ в Ð³Ð¾Ð´Ñ (1â53) (пеÑÐ²Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ñ Ð½Ð°ÑинаеÑÑÑ Ð² пеÑвÑй Ð´ÐµÐ½Ñ Ð³Ð¾Ð´Ð°) |
IW | Ð½Ð¾Ð¼ÐµÑ Ð½ÐµÐ´ÐµÐ»Ð¸ в Ð³Ð¾Ð´Ñ Ð¿Ð¾ ISO 8601 (01â53; пеÑвÑй ÑеÑвеÑг года оÑноÑиÑÑÑ Ðº неделе 1) |
CC | век (2 ÑиÑÑÑ) (двадÑаÑÑ Ð¿ÐµÑвÑй век наÑалÑÑ 2001-01-01) |
J | ÑлианÑÐºÐ°Ñ Ð´Ð°Ñа (Ñелое ÑиÑло дней Ð¾Ñ 24 ноÑбÑÑ 4714 г. до н. Ñ. 00:00 по меÑÑÐ½Ð¾Ð¼Ñ Ð²Ñемени; Ñм. Раздел B.7) |
Q | кваÑÑал |
RM | Ð½Ð¾Ð¼ÐµÑ Ð¼ÐµÑÑÑа ÑимÑкими ÑиÑÑами в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе (IâXII; I=ÑнваÑÑ) |
rm | Ð½Ð¾Ð¼ÐµÑ Ð¼ÐµÑÑÑа ÑимÑкими ÑиÑÑами в нижнем ÑегиÑÑÑе (iâxii; i=ÑнваÑÑ) |
TZ | аббÑевиаÑÑÑа ÑаÑового поÑÑа в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе |
tz | аббÑевиаÑÑÑа ÑаÑового поÑÑа в нижнем ÑегиÑÑÑе |
TZH | ÑаÑÑ ÑаÑового поÑÑа |
TZM | минÑÑÑ ÑаÑового поÑÑа |
OF | ÑмеÑение ÑаÑового поÑÑа Ð¾Ñ UTC (HH или HH:MM) |
РлÑбÑм кодам ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑÑ, изменÑÑÑие иÑ
поведение. ÐапÑимеÑ, Ñаблон ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ FMMonth вклÑÑÐ°ÐµÑ ÐºÐ¾Ð´ Month Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑом FM. ÐодиÑикаÑоÑÑ, пÑедназнаÑеннÑе Ð´Ð»Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°ÑÑ/вÑемени, пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе 9.28.
ТаблиÑа 9.28. ÐодиÑикаÑоÑÑ ÐºÐ¾Ð´Ð¾Ð² Ð´Ð»Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°ÑÑ/вÑемени
| ÐодиÑикаÑÐ¾Ñ | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
|---|---|---|
ÐÑиÑÑавка FM | Ñежим Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (подавлÑÐµÑ Ð²ÐµÐ´ÑÑие нÑли и дополнение пÑобелами) | FMMonth |
ÐконÑание TH | оконÑание поÑÑдкового ÑиÑлиÑелÑного в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе | DDTH, напÑÐ¸Ð¼ÐµÑ 12TH |
ÐконÑание th | оконÑание поÑÑдкового ÑиÑлиÑелÑного в нижнем ÑегиÑÑÑе | DDth, напÑÐ¸Ð¼ÐµÑ 12th |
ÐÑиÑÑавка FX | глобалÑнÑй паÑамеÑÑ ÑикÑиÑованного ÑоÑмаÑа (Ñм. замеÑаниÑ) | FX Month DD Day |
ÐÑиÑÑавка TM | Ñежим пеÑевода (иÑполÑзÑÑÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð´Ð½ÐµÐ¹ и меÑÑÑев, иÑÑ Ð¾Ð´Ñ Ð¸Ð· lc_time) | TMMonth |
ÐконÑание SP | Ñежим ÑиÑла пÑопиÑÑÑ (не Ñеализован) | DDSP |
ÐамеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоÑмаÑов даÑÑ/вÑемени:
FMподавлÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑÑÑие пÑÐ¾Ð±ÐµÐ»Ñ Ð¸ нÑли ÑпÑава, коÑоÑÑе в пÑоÑивном ÑлÑÑае бÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ, ÑÑÐ¾Ð±Ñ ÑезÑлÑÑÐ°Ñ Ð¸Ð¼ÐµÐ» ÑикÑиÑованнÑÑ ÑиÑинÑ. Ð Postgres Pro модиÑикаÑоÑFMдейÑÑвÑÐµÑ ÑолÑко на ÑледÑÑÑий код, Ñогда как в OracleFMÐµÑ Ð´ÐµÐ¹ÑÑвие ÑаÑпÑоÑÑÑанÑеÑÑÑ Ð½Ð° вÑе поÑледÑÑÑие кодÑ, пока не бÑÐ´ÐµÑ Ð¾ÑклÑÑено поÑледÑÑÑим модиÑикаÑоÑомFM.TMподавлÑÐµÑ Ð·Ð°Ð¼ÑкаÑÑие пÑÐ¾Ð±ÐµÐ»Ñ Ð²Ð½Ðµ завиÑимоÑÑи Ð¾Ñ ÑказаниÑFM.ФÑнкÑии
to_timestampиto_dateигноÑиÑÑÑÑ ÑегиÑÑÑ Ð±Ñкв во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке; поÑÑомÑ, напÑимеÑ, Ð´Ð»Ñ ÑаблоновMON,MonиmonподойдÑÑ Ð¾Ð´Ð½Ð¸ и Ñе же ÑÑÑоки. ÐÑли иÑполÑзÑеÑÑÑ Ð¿ÑиÑÑавкаTM, Ñмена ÑегиÑÑÑа пÑоизводиÑÑÑ Ð² ÑооÑвеÑÑÑвии Ñ Ð¿Ñавилом ÑоÑÑиÑовки, ÑÑÑановленнÑм Ð´Ð»Ñ Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоки (Ñм. Раздел 22.2).to_timestampиto_dateпÑопÑÑкаÑÑ Ð¿Ð¾Ð²ÑоÑÑÑÑиеÑÑ Ð¿ÑÐ¾Ð±ÐµÐ»Ñ Ð² наÑале Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоки и вокÑÑг знаÑений даÑÑ Ð¸ вÑемени, еÑли ÑолÑко не иÑполÑзÑеÑÑÑ Ð¿ÑиÑÑавкаFX. ÐапÑимеÑ,to_timestamp(' 2000    JUN', 'YYYY MON')иto_timestamp('2000 - JUN', 'YYYY-MON')бÑдÑÑ ÑабоÑаÑÑ, ноto_timestamp('2000    JUN', 'FXYYYY MON')вÑдаÑÑ Ð¾ÑибкÑ, Ñак какto_timestampÐ¾Ð¶Ð¸Ð´Ð°ÐµÑ ÑолÑко один пÑобел. ÐÑиÑÑавкаFXдолжна бÑÑÑ Ð¿ÐµÑвой в Ñаблоне.РазделиÑÐµÐ»Ñ (пÑобел или оÑлиÑнÑй Ð¾Ñ ÑиÑÑÑ/бÑÐºÐ²Ñ Ñимвол) в ÑÑÑоке Ñаблона ÑÑнкÑий
to_timestampиto_dateÑооÑвеÑÑÑвÑÐµÑ Ð»ÑÐ±Ð¾Ð¼Ñ ÑазделиÑÐµÐ»Ñ Ð²Ð¾ Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке или пÑопÑÑкаеÑÑÑ, еÑли ÑолÑко не добавлена пÑиÑÑавкаFX. ÐапÑимеÑ,to_timestamp('2000JUN', 'YYYY///MON')иto_timestamp('2000/JUN', 'YYYY MON')бÑдÑÑ ÑабоÑаÑÑ, ноto_timestamp('2000//JUN', 'YYYY/MON')вÑдаÑÑ Ð¾ÑибкÑ, Ñак как колиÑеÑÑво ÑазделиÑелей во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке пÑевÑÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑазделиÑелей в Ñаблоне.ÐÑли добавлÑеÑÑÑ Ð¿ÑиÑÑавка
FX, ÑазделиÑÐµÐ»Ñ Ð² ÑÑÑоке Ñаблона ÑооÑвеÑÑÑвÑÐµÑ Ñовно Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð²Ð¾ Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке. Ðо замеÑÑÑе, ÑÑо Ñимвол во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке не обÑзаÑелÑно должен ÑовпадаÑÑ Ñ Ñимволом ÑазделиÑÐµÐ»Ñ Ð² Ñаблоне. ÐапÑимеÑ,to_timestamp('2000/JUN', 'FXYYYY MON')бÑÐ´ÐµÑ ÑабоÑаÑÑ, аto_timestamp('2000/JUN', 'FXYYYY  MON')вÑдаÑÑ Ð¾ÑибкÑ, поÑÐ¾Ð¼Ñ ÑÑо вÑоÑой пÑобел в ÑÑÑоке Ñаблона забиÑÐ°ÐµÑ Ð±ÑквÑJиз Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоки.ÐÐ¾Ð´Ñ Ñаблона
TZHÐ¼Ð¾Ð¶ÐµÑ ÑооÑвеÑÑÑвоваÑÑ ÑиÑло Ñо знаком. Ðез пÑиÑÑавкиFXзнаки минÑÑа могÑÑ Ð±ÑÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°ÑнÑми и воÑпÑинимаÑÑÑÑ ÐºÐ°Ðº ÑазделиÑели. ÐÑа неоднознаÑноÑÑÑ ÑазÑеÑаеÑÑÑ ÑледÑÑÑим обÑазом: еÑли ÑиÑло ÑазделиÑелей пеÑедTZHв ÑÑÑоке Ñаблона менÑÑе ÑиÑла ÑазделиÑелей пеÑед знаком минÑÑа во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке, знак минÑÑ Ð²Ð¾ÑпÑинимаеÑÑÑ ÐºÐ°Ðº оÑноÑÑÑийÑÑ ÐºTZH. РпÑоÑивном ÑлÑÑае знак минÑÑа воÑпÑинимаеÑÑÑ ÐºÐ°Ðº ÑазделиÑÐµÐ»Ñ Ð·Ð½Ð°Ñений. ÐапÑимеÑ, вto_timestamp('2000 -10', 'YYYY TZH')в полеTZHпопадаеÑ-10, а вto_timestamp('2000 -10', 'YYYY  TZH')вTZHÐ¿Ð¾Ð¿Ð°Ð´Ð°ÐµÑ Ð·Ð½Ð°Ñение10.Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð´Ð»Ñ
to_charмогÑÑ ÑодеÑжаÑÑ Ð¾Ð±ÑÑнÑй ÑекÑÑ; он бÑÐ´ÐµÑ Ð²Ñведен в неизменном виде. ЧÑÐ¾Ð±Ñ Ð¿ÑинÑдиÑелÑно вÑвеÑÑи ÑекÑÑ Ð±ÑквалÑно, даже еÑли он ÑодеÑÐ¶Ð¸Ñ ÑаблоннÑе кодÑ, подÑÑÑÐ¾ÐºÑ Ñ Ð½Ð¸Ð¼ можно заклÑÑиÑÑ Ð² кавÑÑки. ÐапÑимеÑ, в ÑÑÑоке'"Hello Year "YYYY', кодYYYYбÑÐ´ÐµÑ Ð·Ð°Ð¼ÐµÐ½Ñн годом, а бÑкваYв ÑловеYearоÑÑанеÑÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ð¾Ð¹. Ð ÑÑнкÑиÑÑto_date,to_numberиto_timestampпÑи обÑабоÑке подÑÑÑок в кавÑÑÐºÐ°Ñ Ð¸ бÑквалÑного ÑекÑÑа некоÑоÑой Ð´Ð»Ð¸Ð½Ñ Ð¿ÑопÑÑкаеÑÑÑ Ñакое же ÑиÑло Ñимволов во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке; напÑимеÑ, пÑи обÑабоÑке подÑÑÑоки"XX"бÑдÑÑ Ð¿ÑопÑÑÐµÐ½Ñ Ð´Ð²Ð° Ñимвола (лÑбÑе, не обÑзаÑелÑноXX).ÐодÑказка
Ðо Postgres Pro 12 во Ð²Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑоке можно бÑло пÑопÑÑкаÑÑ Ð¿ÑоизволÑнÑй ÑекÑÑ, иÑполÑзÑÑ Ð² Ñаблоне ÑимволÑ, оÑлиÑнÑе Ð¾Ñ ÑиÑÑ Ð¸ бÑкв. ÐапÑимеÑ, ÑанÑÑе ÑабоÑало
to_timestamp('2000y6m1d', 'yyyy-MM-DD'). ТепеÑÑ Ð´Ð»Ñ ÑÑой Ñели можно иÑполÑзоваÑÑ ÑолÑко бÑквÑ. ÐапÑимеÑ, ÑаблонÑto_timestamp('2000y6m1d', 'yyyytMMtDDt')иto_timestamp('2000y6m1d', 'yyyy"y"MM"m"DD"d"')пÑопÑÑкаÑÑy,mиd.ÐÑли вам нÑжно полÑÑиÑÑ Ð½Ð° вÑÑ Ð¾Ð´Ðµ двойнÑе кавÑÑки, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑедваÑиÑÑ Ð¸Ñ Ñимволом обÑаÑной коÑой ÑеÑÑÑ, напÑимеÑ:
'\"YYYY Month\"'. РоÑÑалÑном ÑÑÐ¾Ñ Ñимвол вне кавÑÑек воÑпÑинимаеÑÑÑ ÐºÐ°Ðº обÑÑнÑй. ÐнÑÑÑи ÑÑÑоки в кавÑÑÐºÐ°Ñ Ð¾Ð½ ÑказÑваеÑ, ÑÑо ÑледÑÑÑий Ñимвол должен воÑпÑинимаÑÑÑÑ Ð±ÑквалÑно, каким Ð±Ñ Ð¾Ð½ ни бÑл (но ÑÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл, ÑолÑко еÑли ÑледÑÑÑий Ñимвол â кавÑÑки или обÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ ÑеÑÑа).ÐÑли в ÑÑнкÑиÑÑ
to_timestampиto_dateÑоÑÐ¼Ð°Ñ Ð³Ð¾Ð´Ð° опÑеделÑеÑÑÑ Ð¼ÐµÐ½ÐµÐµ, Ñем 4 ÑиÑÑами, напÑимеÑ, какYYY, и в пеÑеданном знаÑении года Ñоже менÑÑе 4 ÑиÑÑ, год пеÑеÑÑиÑÑваеÑÑÑ Ð² макÑималÑно близкий к Ð³Ð¾Ð´Ñ 2020, Ñ. е.95воÑпÑинимаеÑÑÑ ÐºÐ°Ðº 1995.ФÑнкÑии
to_timestampиto_dateвоÑпÑинимаÑÑ Ð¾ÑÑиÑаÑелÑнÑе знаÑÐµÐ½Ð¸Ñ Ð³Ð¾Ð´Ð¾Ð² как оÑноÑÑÑиеÑÑ Ðº годам до н. Ñ. ÐÑли же ÑказаÑÑ Ð¾ÑÑиÑаÑелÑное знаÑение и добавиÑÑ ÑвнÑй пÑизнакBC(до н. Ñ.), год бÑÐ´ÐµÑ Ð¾ÑноÑиÑÑÑÑ Ðº н. Ñ. ÐÑлевое знаÑение года воÑпÑинимаеÑÑÑ ÐºÐ°Ðº 1 год до н. Ñ.Ð ÑÑнкÑиÑÑ
to_timestampиto_dateÑ Ð¿ÑеобÑазованиемYYYYÑвÑзано огÑаниÑение, когда обÑабаÑÑваемÑй год запиÑÑваеÑÑÑ Ð±Ð¾Ð»ÐµÐµ Ñем 4 ÑиÑÑами. ÐоÑлеYYYYÐ½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð½ÐµÑиÑÑовой Ñимвол или ÑооÑвеÑÑÑвÑÑÑий код, инаÑе год вÑегда бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº 4 ÑиÑÑÑ. ÐапÑимеÑ, вto_date('200001130', 'YYYYMMDD')(Ñ Ð³Ð¾Ð´Ð¾Ð¼ 20000) год бÑÐ´ÐµÑ Ð¸Ð½ÑеÑпÑеÑиÑован как ÑоÑÑоÑÑий из 4 ÑиÑÑ; ÑÑÐ¾Ð±Ñ Ð¸ÑпÑавиÑÑ ÑиÑÑаÑиÑ, нÑжно добавиÑÑ Ð½ÐµÑиÑÑовой ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ñле года, как вto_date('20000-1130', 'YYYY-MMDD'), или код как вto_date('20000Nov30', 'YYYYMonDD').ФÑнкÑии
to_timestampиto_dateпÑинимаÑÑ Ð¿Ð¾Ð»ÐµCC(век), но игноÑиÑÑÑÑ ÐµÐ³Ð¾, еÑли в Ñаблоне еÑÑÑ Ð¿Ð¾Ð»ÐµYYY,YYYYилиY,YYY. ÐÑлиCCиÑполÑзÑеÑÑÑ ÑYYилиY, ÑезÑлÑÑаÑом бÑÐ´ÐµÑ Ð³Ð¾Ð´ в данном ÑÑолеÑии. ÐÑли пÑиÑÑÑÑÑвÑÐµÑ ÑолÑко код ÑÑолеÑиÑ, без года, подÑазÑмеваеÑÑÑ Ð¿ÐµÑвÑй год ÑÑого века.ФÑнкÑии
to_timestampиto_dateпÑинимаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸ номеÑа дней недели (DAY,Dи ÑвÑзаннÑе ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð»ÐµÐ¹), но игноÑиÑÑÑÑ Ð¸Ñ Ð¿Ñи вÑÑиÑлении ÑезÑлÑÑаÑа. То же Ñамое пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ñ Ð¿Ð¾Ð»Ñми кваÑÑала (Q).ФÑнкÑиÑм
to_timestampиto_dateможно пеÑедаÑÑ Ð´Ð°ÑÑ Ð¿Ð¾ неделÑÐ½Ð¾Ð¼Ñ ÐºÐ°Ð»ÐµÐ½Ð´Ð°ÑÑ ISO 8601 (оÑлиÑаÑÑиеÑÑ Ð¾Ñ Ð³ÑигоÑианÑÐºÐ¸Ñ ) одним из двÑÑ ÑпоÑобов:Ðод, Ð½Ð¾Ð¼ÐµÑ Ð½ÐµÐ´ÐµÐ»Ð¸ и Ð´Ð½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸: напÑимеÑ,
to_date('2006-42-4', 'IYYY-IW-ID')возвÑаÑÐ°ÐµÑ Ð´Ð°ÑÑ2006-10-19. ÐÑли Ð´ÐµÐ½Ñ Ð½ÐµÐ´ÐµÐ»Ð¸ опÑÑкаеÑÑÑ, он ÑÑиÑаеÑÑÑ ÑавнÑм 1 (понеделÑникÑ).Ðод и Ð´ÐµÐ½Ñ Ð³Ð¾Ð´Ð°: напÑимеÑ,
to_date('2006-291', 'IYYY-IDDD')Ñакже возвÑаÑаеÑ2006-10-19.
ÐопÑÑка ввеÑÑи даÑÑ Ð¸Ð· ÑмеÑи полей гÑигоÑианÑкого и неделÑного календаÑÑ ISO 8601 беÑÑмÑÑленна, поÑÑÐ¾Ð¼Ñ ÑÑо бÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ Ð¾Ñибкой. РконÑекÑÑе ISO 8601 понÑÑÐ¸Ñ Â«Ð½Ð¾Ð¼ÐµÑ Ð¼ÐµÑÑÑа» и Â«Ð´ÐµÐ½Ñ Ð¼ÐµÑÑÑа» не ÑÑÑеÑÑвÑÑÑ, а в гÑигоÑианÑком календаÑе Ð½ÐµÑ Ð¿Ð¾Ð½ÑÑÐ¸Ñ Ð½Ð¾Ð¼ÐµÑа недели по ISO.
Ðнимание
Тогда как
to_dateне пÑÐ¸Ð¼ÐµÑ ÑмеÑÑ Ð¿Ð¾Ð»ÐµÐ¹ гÑигоÑианÑкого и неделÑного календаÑÑ ISO,to_charÑпоÑобна на ÑÑо, Ñак как ÑоÑмаÑÑ Ð²ÑодеYYYY-MM-DD (IYYY-IDDD)могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ. Ðо избегайÑе ÑоÑмаÑов ÑипаIYYY-MM-DD; в пÑоÑивном ÑлÑÑае Ñ Ð´Ð°Ñами в наÑале года Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ ÑÑÑпÑизÑ. (Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 9.9.1.)ФÑнкÑиÑ
to_timestampвоÑпÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð»Ñ Ð¼Ð¸Ð»Ð»Ð¸ÑекÑнд (MS) или микÑоÑекÑнд (US) как дÑобнÑÑ ÑаÑÑÑ ÑиÑло ÑекÑнд. ÐапÑимеÑ,to_timestamp('12.3', 'SS.MS')â ÑÑо не 3 миллиÑекÑндÑ, а 300, Ñак как ÑÑо знаÑение воÑпÑинимаеÑÑÑ ÐºÐ°Ðº 12 + 0.3 ÑекÑндÑ. ÐÑо знаÑиÑ, ÑÑо Ð´Ð»Ñ ÑоÑмаÑаSS.MSÐ²Ñ Ð¾Ð´Ð½Ñе знаÑениÑ12.3,12.30и12.300задаÑÑ Ð¾Ð´Ð½Ð¾ и Ñо же ÑиÑло миллиÑекÑнд. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑÑи миллиÑекÑндÑ, вÑÐµÐ¼Ñ Ð½Ñжно запиÑаÑÑ Ð² виде12.003, Ñогда оно бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинÑÑо как 12 + 0.003 = 12.003 Ñек.ÐÑÑ Ð±Ð¾Ð»ÐµÐµ ÑложнÑй пÑимеÑ:
to_timestamp('15:12:02.020.001230', 'HH24:MI:SS.MS.US')бÑÐ´ÐµÑ Ð¿ÑеобÑазовано в 15 ÑаÑов, 12 минÑÑ Ð¸ 2 ÑекÑÐ½Ð´Ñ + 20 миллиÑекÑнд + 1230 микÑоÑекÑнд = 2.021230 seconds.ÐÑмеÑаÑÐ¸Ñ Ð´Ð½ÐµÐ¹ недели в
to_char(..., 'ID')ÑооÑвеÑÑÑвÑÐµÑ ÑÑнкÑииextract(isodow from ...), но нÑмеÑаÑиÑto_char(..., 'D')не ÑооÑвеÑÑÑвÑÐµÑ Ð½ÑмеÑаÑии, пÑинÑÑой вextract(dow from ...).ФÑнкÑиÑ
to_char(interval)обÑабаÑÑÐ²Ð°ÐµÑ ÑоÑмаÑÑHHиHH12в ÑÐ°Ð¼ÐºÐ°Ñ 12 ÑаÑов, Ñо еÑÑÑ 0 и 36 ÑаÑов бÑдÑÑ Ð²ÑводиÑÑÑÑ ÐºÐ°Ðº12, Ñогда какHH24вÑÐ²Ð¾Ð´Ð¸Ñ ÑиÑло ÑаÑов полноÑÑÑÑ, и Ð´Ð»Ñ Ð·Ð½Ð°ÑенийintervalÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑевÑÑаÑÑ 23.
ÐÐ¾Ð´Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑиÑловÑÑ Ð·Ð½Ð°Ñений пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе 9.29.
ТаблиÑа 9.29. ÐÐ¾Ð´Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел
| Ðод | ÐпиÑание |
|---|---|
9 | позиÑÐ¸Ñ ÑиÑÑÑ (Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑÑÑÑÑвоваÑÑ, еÑли ÑиÑÑа незнаÑаÑаÑ) |
0 | позиÑÐ¸Ñ ÑиÑÑÑ (пÑиÑÑÑÑÑвÑÐµÑ Ð²Ñегда, даже еÑли ÑиÑÑа незнаÑаÑаÑ) |
. (ÑоÑка) | деÑÑÑиÑÐ½Ð°Ñ ÑоÑка |
, (запÑÑаÑ) | ÑазделиÑÐµÐ»Ñ Ð³ÑÑпп (ÑÑÑÑÑ) |
PR | оÑÑиÑаÑелÑное знаÑение в ÑгловÑÑ ÑÐºÐ¾Ð±ÐºÐ°Ñ |
S | знак, добавлÑемÑй к ÑиÑÐ»Ñ (Ñ ÑÑÑÑом локали) |
L | Ñимвол денежной единиÑÑ (Ñ ÑÑÑÑом локали) |
D | ÑазделиÑÐµÐ»Ñ Ñелой и дÑобной ÑаÑÑи ÑиÑла (Ñ ÑÑÑÑом локали) |
G | ÑазделиÑÐµÐ»Ñ Ð³ÑÑпп (Ñ ÑÑÑÑом локали) |
MI | знак минÑÑ Ð² заданной позиÑии (еÑли ÑиÑло < 0) |
PL | знак плÑÑ Ð² заданной позиÑии (еÑли ÑиÑло > 0) |
SG | знак плÑÑ Ð¸Ð»Ð¸ минÑÑ Ð² заданной позиÑии |
RN | ÑиÑло ÑимÑкими ÑиÑÑами (в диапазоне Ð¾Ñ 1 до 3999) |
TH или th | оконÑание поÑÑдкового ÑиÑлиÑелÑного |
V | Ñдвиг на заданное колиÑеÑÑво ÑиÑÑ (Ñм. замеÑаниÑ) |
EEEE | ÑкÑпоненÑиалÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÑиÑла |
ÐамеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑоÑмаÑов ÑиÑел:
0обознаÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑиÑÑÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð²Ñегда, даже еÑли ÑÑо незнаÑаÑий Ð½Ð¾Ð»Ñ Ñлева или ÑпÑава.9Ñакже обознаÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð¸ÑÐ¸Ñ ÑиÑÑÑ, но еÑли ÑÑо незнаÑаÑий Ð½Ð¾Ð»Ñ Ñлева, он заменÑеÑÑÑ Ð¿Ñобелом, а еÑли ÑпÑава и задан Ñежим заполнениÑ, он ÑдалÑеÑÑÑ. (ÐÐ»Ñ ÑÑнкÑииto_number()ÑÑи два Ñимвола ÑавнознаÑнÑ.)ÐÑли в ÑоÑмаÑе ÑиÑла пÑедÑÑмоÑÑено менÑÑе знаков поÑле запÑÑой, Ñем в ÑоÑмаÑиÑÑемом ÑиÑле, ÑÑнкÑиÑ
to_char()окÑÑÐ³Ð»Ð¸Ñ ÑиÑло до Ñказанного колиÑеÑÑва знаков.Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ñаблона
S,L,DиGпÑедÑÑавлÑÑÑ Ð·Ð½Ð°Ðº, Ñимвол денежной единиÑÑ, деÑÑÑиÑнÑÑ ÑоÑÐºÑ Ð¸ ÑазделиÑÐµÐ»Ñ ÑÑÑÑÑ, как Ð¸Ñ Ð¾Ð¿ÑеделÑÐµÑ ÑекÑÑÐ°Ñ Ð»Ð¾ÐºÐ°Ð»Ñ (Ñм. lc_monetary и lc_numeric). Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ ÑоÑка и запÑÑÐ°Ñ Ð¿ÑедÑÑавлÑÑÑ Ñе же ÑимволÑ, обознаÑаÑÑие деÑÑÑиÑнÑÑ ÑоÑÐºÑ Ð¸ ÑазделиÑÐµÐ»Ñ ÑÑÑÑÑ, но не завиÑÑÑ Ð¾Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸.ÐÑли в Ñаблоне
to_char()оÑÑÑÑÑÑвÑÐµÑ Ñвное Ñказание Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÐºÐ°, Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ ÑезеÑвиÑÑеÑÑÑ Ð¾Ð´Ð½Ð° позиÑÐ¸Ñ ÑÑдом Ñ ÑиÑлом (Ñлева Ð¾Ñ Ð½ÐµÐ³Ð¾). ÐÑли левее неÑколÑкиÑ9помеÑÑнS, знак Ñакже бÑÐ´ÐµÑ Ð¿ÑипиÑан Ñлева к ÑиÑлÑ.Ðнак ÑиÑла, полÑÑеннÑй кодами
SG,PLилиMI, не пÑиÑоединÑеÑÑÑ Ðº ÑиÑлÑ; напÑимеÑ,to_char(-12, 'MI9999')вÑдаÑÑ'-  12', Ñогда какto_char(-12, 'S9999')â'  -12'. (Ð OracleMIне Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð´Ñи пеÑед9, наобоÑоÑ9нÑжно ÑказаÑÑ Ð¿ÐµÑедMI.)THне пÑеобÑазÑÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑÑе 0 и не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÑобнÑе ÑиÑла.PL,SGиTHâ ÑаÑÑиÑÐµÐ½Ð¸Ñ Postgres Pro.Ð
to_numberпÑи иÑполÑзовании ÑаблоннÑÑ ÐºÐ¾Ð´Ð¾Ð², не обознаÑаÑÑÐ¸Ñ Ð´Ð°Ð½Ð½Ñе, ÑÐ°ÐºÐ¸Ñ ÐºÐ°ÐºLиTH, пÑопÑÑкаеÑÑÑ ÑооÑвеÑÑÑвÑÑÑее колиÑеÑÑво Ð²Ñ Ð¾Ð´Ð½ÑÑ Ñимволов. ÐÑи ÑÑом не Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°ÑениÑ, ÑовпадаÑÑ Ð»Ð¸ они Ñ Ñимволами Ñаблона, еÑли ÑолÑко ÑÑо не ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ (Ñо еÑÑÑ ÑиÑÑÑ, знак ÑиÑла, деÑÑÑиÑÐ½Ð°Ñ ÑоÑка или запÑÑаÑ). ÐапÑимеÑ, Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑокиTHбÑдÑÑ Ð¿ÑопÑÑÐµÐ½Ñ Ð´Ð²Ð° Ñимвола, не пÑедÑÑавлÑÑÑие даннÑе.Vcto_charÑÐ¼Ð½Ð¾Ð¶Ð°ÐµÑ Ð²Ð²Ð¾Ð´Ð¸Ð¼Ð¾Ðµ знаÑение на10^, гдеnnâ ÑиÑло ÑиÑÑ, ÑледÑÑÑÐ¸Ñ Ð·Ð°V.VÑto_numberподобнÑм обÑазом Ð´ÐµÐ»Ð¸Ñ Ð·Ð½Ð°Ñение. ФÑнкÑииto_charиto_numberне поддеÑживаÑÑVÑ Ð´ÑобнÑми ÑиÑлами (напÑимеÑ,99.9V99не допÑÑкаеÑÑÑ).Ðод
EEEE(наÑÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ) не Ð¼Ð¾Ð¶ÐµÑ ÑоÑеÑаÑÑÑÑ Ñ Ð»ÑбÑми дÑÑгими ваÑианÑами ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ модиÑикаÑоÑами, за иÑклÑÑением ÑиÑÑ Ð¸ деÑÑÑиÑной ÑоÑки, и должен ÑаÑполагаÑÑÑÑ Ð² конÑе ÑÑÑоки Ñаблона (напÑимеÑ,9.99EEEEâ допÑÑÑимÑй Ñаблон).
ÐÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð¾Ð² к ним могÑÑ Ð±ÑÑÑ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ñ Ð¾Ð¿ÑеделÑннÑе модиÑикаÑоÑÑ. ÐапÑимеÑ, FM99.99 обÑабаÑÑваеÑÑÑ ÐºÐ°Ðº код 99.99 Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑом FM. ÐÑе модиÑикаÑоÑÑ Ð´Ð»Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел пеÑеÑиÑÐ»ÐµÐ½Ñ Ð² ТаблиÑе 9.30.
ТаблиÑа 9.30. ÐодиÑикаÑоÑÑ Ñаблонов Ð´Ð»Ñ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑиÑел
| ÐодиÑикаÑÐ¾Ñ | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
|---|---|---|
ÐÑиÑÑавка FM | Ñежим Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (подавлÑÐµÑ Ð·Ð°Ð²ÐµÑÑаÑÑие нÑли и дополнение пÑобелами) | FM99.99 |
ÐконÑание TH | оконÑание поÑÑдкового ÑиÑлиÑелÑного в веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе | 999TH |
ÐконÑание th | оконÑание поÑÑдкового ÑиÑлиÑелÑного в нижнем ÑегиÑÑÑе | 999th |
РТаблиÑе 9.31 пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð½ÐµÐºÐ¾ÑоÑÑе пÑимеÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑнкÑии to_char.
ТаблиÑа 9.31. ÐÑимеÑÑ to_char
| ÐÑÑажение | РезÑлÑÑÐ°Ñ |
|---|---|
to_char(current_timestamp, 'Day, DD  HH12:MI:SS') | 'Tuesday  , 06  05:39:18' |
to_char(current_timestamp, 'FMDay, FMDD  HH12:MI:SS') | 'Tuesday, 6  05:39:18' |
to_char(current_timestamp AT TIME ZONE 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') | '2022-12-06T05:39:18Z', ÑаÑÑиÑеннÑй ÑоÑÐ¼Ð°Ñ ISO 8601 |
to_char(-0.1, '99.99') | 'Â Â -.10' |
to_char(-0.1, 'FM9.99') | '-.1' |
to_char(-0.1, 'FM90.99') | '-0.1' |
to_char(0.1, '0.9') | 'Â 0.1' |
to_char(12, '9990999.9') | 'Â Â Â Â 0012.0' |
to_char(12, 'FM9990999.9') | '0012.' |
to_char(485, '999') | 'Â 485' |
to_char(-485, '999') | '-485' |
to_char(485, '9Â 9Â 9') | 'Â 4Â 8Â 5' |
to_char(1485, '9,999') | 'Â 1,485' |
to_char(1485, '9G999') | 'Â 1Â 485' |
to_char(148.5, '999.999') | 'Â 148.500' |
to_char(148.5, 'FM999.999') | '148.5' |
to_char(148.5, 'FM999.990') | '148.500' |
to_char(148.5, '999D999') | 'Â 148,500' |
to_char(3148.5, '9G999D999') | 'Â 3Â 148,500' |
to_char(-485, '999S') | '485-' |
to_char(-485, '999MI') | '485-' |
to_char(485, '999MI') | '485Â ' |
to_char(485, 'FM999MI') | '485' |
to_char(485, 'PL999') | '+485' |
to_char(485, 'SG999') | '+485' |
to_char(-485, 'SG999') | '-485' |
to_char(-485, '9SG99') | '4-85' |
to_char(-485, '999PR') | '<485>' |
to_char(485, 'L999') | 'DMÂ 485' |
to_char(485, 'RN') | 'Â Â Â Â Â Â Â Â CDLXXXV' |
to_char(485, 'FMRN') | 'CDLXXXV' |
to_char(5.2, 'FMRN') | 'V' |
to_char(482, '999th') | 'Â 482nd' |
to_char(485, '"Good number:"999') | 'Good number: 485' |
to_char(485.8, '"Pre:"999"Â Post:"Â .999') | 'Pre:Â 485Â Post:Â .800' |
to_char(12, '99V999') | 'Â 12000' |
to_char(12.4, '99V999') | 'Â 12400' |
to_char(12.45, '99V9') | 'Â 125' |
to_char(0.0004859, '9.99EEEE') | ' 4.86e-04' |