Patrones de plantilla para conversiones de fecha y hora

Netezza Performance Server SQL reconoce determinados patrones en la plantilla de salida y los sustituye por los datos con el formato adecuado.

Tabla 1. Patrones de plantilla para conversiones de fecha y hora
Patrón Descripción Ejemplo
HH o HH12 Hora del día (01-12). to_char(timestamp '2015-02-14 20:19:07','HH') devuelve '08'
HH24 Hora del día (00-23). to_char(timestamp '2015-02-14 20:19:07', 'HH24') devuelve '20'
MI Minuto (00-59). to_char(timestamp '2015-02-14 20:19:07','MI') devuelve '19'
SS Segundo (00-59). to_char(timestamp '2015-02-14 20:19:07','SS') devuelve '07'
SSSS Segundos pasada la medianoche (0-86399). to_char(timestamp '2015-02-14 20:19:07', 'SSSS') devuelve '73147'
MS Milisegundos (00-00.999) tras el redondeo. to_char(timestamp '2015-02-14 20:19:07.123456789', 'MS') devuelve '123'
US Microsegundos (00-00.999999) tras el redondeo. to_char(timestamp '2015-02-14 20:19:07.123456789', 'US') devuelve '123457'
A.M.  P.M.
a.m.  p.m.
AM    PM
am    pm
Indicador de meridiano (mayúsculas o minúsculas, con o sin puntos). El indicador de meridiano especificado por la plantilla se ajusta en la salida para corresponderse con la hora (am para horas de las 0 a las 12, o pm para horas de las 12 a las 23). El formato del indicador de meridiano especificado por la plantilla (mayúsculas o minúsculas, con o sin puntos) se utiliza para la salida. to_char(timestamp '2015-02-14 20:19:07', 'HH:MI:SS am') devuelve '08:19:07 pm'
Y,YYY Año (4 y más dígitos) con un punto. to_char(date '2016-02-14','Y,YYY') devuelve '2,016'
YYYY Año (4 y más dígitos). to_char(date '2016-02-14','YYYY') devuelve '2016'
YYY Últimos 3 dígitos del año. to_char(date '2016-02-14','YYY') devuelve '016'
YY Últimos 2 dígitos del año. to_char(date '2016-02-14','YY') devuelve '16'
Y Último dígito del año. to_char(date '2016-02-14','Y') devuelve '6'
IYYY Año ISO (4 y más dígitos). to_char(date '2016-01-01','IYYY') devuelve '2015'
IYY Últimos 3 dígitos del año en formato ISO. to_char(date '2016-02-14','IYY') devuelve '015'
IY Últimos 2 dígitos del año en formato ISO. to_char(date '2016-02-14','IY') devuelve '15'
I Último dígito del año ISO. to_char(date '2016-02-14','I') devuelve '5'
B.C.  A.D.
b.c.  a.d.
BC    AD
bc    ad
Indicador de era (mayúsculas o minúsculas, con o sin puntos). El formato del indicador de era especificado por la plantilla (mayúsculas o minúsculas, con o sin puntos) se utiliza para la salida. to_char(date '2016-02-14','YYYY B.C.') devuelve '2016 A.D.'
MONTH Nombre del mes todo en mayúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-02-14','MONTH') devuelve 'FEBRUARY '
Month Nombre del mes con mayúsculas y minúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-03-14','Month') devuelve 'March '
month Nombre del mes todo en minúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-04-14','month') devuelve 'april '
MON Nombre del mes abreviado en mayúsculas (3 caracteres). to_char(date '2016-02-14','MON') devuelve 'FEB'
Mon Nombre del mes abreviado en mayúsculas y minúsculas (3 caracteres). to_char(date '2016-03-14','Mon') devuelve 'Mar'
mon Nombre del mes abreviado en minúscula (3 caracteres). to_char(date '2016-04-14','mon') devuelve 'apr'
MM Número de mes (01-12). to_char(date '2016-04-14','MM') devuelve '04'
DAY Nombre del día todo en mayúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-02-15','DAY') devuelve 'MONDAY '
Day Nombre del día con mayúsculas y minúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-02-16','Day') devuelve 'Tuesday '
day Nombre del día todo en minúsculas, rellenado con espacios en blanco al final hasta 9 caracteres. to_char(date '2016-02-17','day') devuelve 'wednesday'
DY Nombre del día abreviado en mayúsculas (3 caracteres). to_char(date '2016-02-15','DY') devuelve 'MON'
Dy Nombre del día abreviado en mayúsculas y minúsculas (3 caracteres). to_char(date '2016-02-16','Dy') devuelve 'Tue'
dy Nombre del día abreviado en minúsculas abreviado (3 caracteres). to_char(date '2016-02-17','dy') devuelve 'wed'
DDD Día del año (001-366). to_char(date '2016-02-17','DDD') devuelve '048'
DD Día del mes (01-31). to_char(date '2016-02-17','DD') devuelve '17'
D Día de la semana (1-7; Domingo=1). to_char(date '2016-02-17','D') devuelve '4'
W Semana del mes (1-5), donde la primera semana comienza el primer día del mes. to_char(date '2016-02-17','W') devuelve '3'
WW Número de semana del año (01-53), donde la primera semana comienza el primer día del año. to_char(date '2016-02-17','WW') devuelve '07'
IW Número de semana del año en formato ISO. El primer jueves del nuevo año está en la semana 1. to_char(date '2016-01-01','IW') devuelve '53'
CC Siglo (2 dígitos). to_char(date '2016-02-17','CC') devuelve '21'
J Días julianos; es decir, el número de días desde el 24 de noviembre de 4714 AC. to_char(date '2016-02-17','J') devuelve '2457389'
Q Trimestre to_char(date '2016-02-17','J') devuelve '1'
RM Mes en números romanos en mayúsculas (I-XII; I=Enero), rellenado con espacios en blanco al final hasta 4 caracteres. to_char(date '2016-04-11','RM') devuelve 'IV '
rm Mes en números romanos en minúsculas (i-xii; i=Enero), rellenado con espacios en blanco al final hasta 4 caracteres. to_char(date '2016-10-11','RM') devuelve 'X '
Notas sobre el uso:
  • Los espacios de una plantilla se reflejan en la salida. Por ejemplo, to_char(timestamp '2015-02-14 20:19:07','HH MI SS') devuelve '08 19 07'.
  • Para producir texto, colóquelo entre comillas dobles. Por ejemplo, to_char(date '2016-04-02','"Year: "YYYY') devuelve 'Year: 2016'.
  • Para producir unas comillas, sitúe delante de ellas una barra inclinada invertida. Por ejemplo, to_char(date '2015-02-14','\"YYYY\" \"FMMonth\"') devuelve '"2015" "February"'.
Puede aplicar los siguientes modificadores a cualquier patrón de plantilla para modificar su comportamiento.
Tabla 2. Modificadores de plantilla
Modificador Descripción
FM (prefijo) Suprime los ceros a la izquierda y los espacios en blanco al final que, de lo contrario, se añadirían para que la salida tuviera una anchura fija. Por ejemplo:

to_char(date '2016-03-14','FMMonth') devuelve 'March'

El prefijo FM suprime los cuatro espacios en blanco al final que normalmente seguirían a 'March'.

FX (prefijo) Fuerza a que una serie de entrada contenga al menos tantos espacios en blanco como se especifiquen en la plantilla:
  • Si el prefijo FX no se especifica, la serie de entrada puede contener el mismo número de espacios en blanco que la plantilla, más espacios o menos espacios. Por ejemplo:
    • to_date('31 Dec 2015','DD Mon YYYY') devuelve 2015-12-31
    • to_date('31 Dec 2015','DD Mon YYYY') devuelve 2015-12-31
    • to_date('31 Dec 2015','DD Mon YYYY') devuelve 2015-12-31
  • Si el prefijo FX se especifica, la serie de entrada puede contener el mismo número de espacios en blanco que la plantilla, pero no más espacios ni menos. Por ejemplo:
    • to_date('31 Dec 2015','FXDD Mon YYYY') devuelve 2015-12-31
    • to_date('31 Dec 2015','FXDD Mon YYYY') devuelve 2015-12-31
    • to_date('31 Dec 2015','FXDD Mon YYYY') devuelve ERROR: Invalid Date.
Esto puede resultar útil si un procedimiento almacenado tiene que verificar si la entrada de caracteres está bien formateada antes de procesarla.
TH (sufijo) Añade el sufijo de número ordinal adecuado en mayúsculas (ST, ND, RD o TH). Por ejemplo:

to_char(date '2016-04-01','FMDDTH') devuelve '1ST'

th (sufijo) Añade el sufijo de número ordinal adecuado en minúsculas (st, nd, rd o th). Por ejemplo:

to_char(date '2016-04-02','FMDDth') devuelve '2nd'

La tabla siguiente describe los patrones de plantilla para las conversiones numéricas.
Tabla 3. Patrones de plantilla para conversiones numéricas
Patrón Descripción Ejemplo
9 Indica la posición de un dígito. En la plantilla se incluye un espacio en blanco por cada 9 de la plantilla que no se corresponde con un dígito en la plantilla.
'to_char(-125,'999') ' devuelve ' '-125' '
' to_char(-125,'99999') devuelve ' '  -125' '
' to_char(125,'999') devuelve ' ' 125'
0 Indica la posición de un cero a la izquierda. to_char(-125,'00999') devuelve '-00125'
. Un punto indica la posición de un separador decimal. to_char(-125,'999.999') devuelve '-125.000'
, Una coma indica la posición de un delimitador de grupo (miles). El delimitador que se utiliza depende de la configuración regional.  
PR Este sufijo hace que un valor negativo se muestre entre corchetes. No afecta a los valores positivos. to_char(-485,'999PR') devuelve '<485>'
S Este prefijo o sufijo coloca un signo de más (+) o menos (-) en la posición correspondiente. to_char(485,'S999') devuelve '+485'
L Símbolo de moneda. El símbolo que se utiliza depende de la configuración regional.  
D Delimitador decimal. El delimitador que se utiliza depende de la configuración regional. to_char(-125,'999D99') devuelve '-125.00'
G Separador de grupo (utiliza el entorno local). to_char(-3125,'9G999D9') devuelve '-3125.0'
MI Este prefijo o sufijo:
  • Para un número negativo, coloca un signo más (+) o menos (-) en la posición correspondiente.
  • Para un número positivo, coloca un espacio en blanco en la posición correspondiente.
Un signo que se formatea utilizando el patrón MI no es un ancla en el número; por ejemplo:
  • to_char(-12,'S9999') devuelve ' -12'.
  • to_char(-12,'MI9999') devuelve '- 12'.
'to_char(-485,'MI999') ' devuelve ' '-485' '
' to_char(-485,'999MI') devuelve ' '485-' '
' to_char(485,'MI999') devuelve ' '  485' '
' to_char(485,'999MI') ' devuelve ' ' 485 '
RN Numeral romano (entrada 1 - 3999). Los numerales romanos ignoran las fracciones decimales. to_char(5.2,'RN') devuelve 'V'
V Desplaza la salida una potencia de 10 por cada 9 a la derecha de la V. Para una función to_char, una plantilla no puede contener tanto un patrón V como un punto decimal. Por ejemplo, 99.9V99 o 99D9V99 no está permitido.
'to_char(12.4,'99V999') ' devuelve ' ' 12400' '
' to_char(12.45,'99V9') devuelve ' ' 125'