IBM PureData System for Analytics, Version 7.1

Fonctions de conversion

Les fonctions de formatage d'IBM® Netezza SQL permettent de convertir les types de données (date/heure, entier, virgule flottante, numérique) en chaînes formatées et de convertir des chaînes formatées en types de données spécifiques.

Ces fonctions utilisent toutes une convention de désignation commune : le premier argument correspond à la valeur à formater et le deuxième, à un modèle qui définit le format de sortie ou d'entrée. Les motifs utilisés par ces modèles sont décrits dans la rubrique Motifs de modèle pour les conversions de date/heure.

Remarque : Le type to_char transtype en interne le type de données date en type de données timestamp.
Le tableau ci-après décrit les fonctions de conversion.
Tableau 1. Fonctions de conversion
Type Description Exemples
to_char(valeur,modèle) Convertit la valeur spécifiée (qui peut être une date, un horodatage, un réel, une valeur de type double précision ou une valeur numérique) en une chaîne de caractères.
  • Dans le modèle, le texte entre guillemets est transmis.
  • Pour générer un guillemet, précédez-le d'une barre oblique inversée.
  • Lors de la conversion d'un nombre positif en caractère, cette fonction insère un blanc avant le nombre afin que les valeurs positives et négatives soient de même longueur. Pour supprimer ce blanc, utilisez l'option de préfixe FM.
Voir Tableau 2.
to_number(texte,modèle) Convertit une chaîne de caractères en valeur numérique. select to_number('12,454.8-', '99G999D9S');

Renvoie : -12454.8

to_date(texte,modèle) Convertit une chaîne de caractères en date. Ignore plusieurs espaces à moins que vous ne spécifiez le préfixe FX comme premier élément du modèle. select to_date('31 Dec 2015','DD Mon YYYY');

Renvoie : 2015-12-31

select to_date('31 Dec 2015','FXDD Mon YYYY');

Renvoie : 2015-12-31

select to_date('31 Dec 2015 20:33:33','DD Mon YYYY HH24":"MI":"SS');

Renvoie : 2015-12-31

to_timestamp(texte,modèle) Convertit une chaîne de caractères en horodatage. Ignore plusieurs espaces à moins que vous ne spécifiez le préfixe FX comme premier élément du modèle. select to_timestamp('31 Dec 2015 08:38:40 pm', 'DD Mon YYYY HH:MI:SS am');

Renvoie : 2015-12-31 20:38:40

Notez qu'il n'est pas nécessaire que l'indicateur de méridien (am ou pm) du modèle corresponde à celui de la chaîne en entrée. Toutefois, il doit utiliser le même format (avec ou sans points).

Exemples de fonction to_char

Une instruction SELECT qui contient l'une des expressions illustrées dans le tableau ci-après renvoie le résultat indiqué.

Tableau 2. Exemples de fonction to_char
Expression Résultat Commentaires
to_char(date '2015-02-14', 'YYYY Month') '2013 February ' Un blanc suit "February" car neuf caractères (nombre de lettres dans "September") sont réservés pour le nom d'un mois, quel que soit le nombre de lettres requis pour le mois.
to_char(date '2015-02-14', 'YYYY FMMonth') '2013 February' Le préfixe FM supprime le blanc à droite de "February".
to_char(timestamp '2015-02-14 20:19:07', 'HH24:MI:SS') '20:19:07'  
to_char(timestamp '2015-02-14 20:19:07', 'HH:MI:SS am') '08:19:07 pm' L'indicateur de méridien spécifié par le modèle est ajusté dans la sortie de sorte à correspondre à l'heure (am pour les heures comprises entre 0 et 12 ou pm pour les heures comprises entre 12 et 23). Le format de l'indicateur de méridien spécifié par le modèle (majuscule ou minuscule, avec ou sans point) est utilisé pour la sortie.
to_char(timestamp '2015-02-14 20:19:07', 'Day, DD  HH:MI:SS am')
'Monday   , 04 08:19:07 pm'
Trois blancs suivent "Monday" car neuf caractères (nombre de lettres dans "Wednesday") sont réservés pour le nom d'un jour de la semaine, quel que soit le nombre de lettres requis pour le jour.
to_char(timestamp '2015-02-14 20:19:07', 'FMDay, DD  HH:MI:SS am')
'Monday, 4 8:19:7 pm'
Le préfixe FM supprime les blancs à droite de "Monday". Il supprime également les zéros placés avant la date, les heures et les secondes.
to_char(timestamp '2015-02-14 20:19:07', 'Day, DD  FMHH:MI:SS am')
'Monday   , 04 8:19:7 pm'
Le préfixe FM supprime les zéros placés avant les heures et les secondes.
to_char(125, '999') ' 125' Le résultat est une chaîne de 4 caractères, un pour chaque position dans le modèle, plus un blanc supplémentaire qui précède le nombre à la place d'un signe plus (+).
to_char(-125, '999') '-125' Aucun blanc ne précède le nombre, en raison du signe moins (-).
to_char(125, '"999D999') ' 125.000' Le modèle indique que la sortie doit inclure trois chiffres après la virgule. Le résultat est une chaîne de 8 caractères, un pour chaque position dans le modèle (le séparateur décimal compte comme une position dans le modèle), plus un blanc supplémentaire qui précède le nombre à la place d'un signe plus (+).
to_char(-125, '"The number is "999"."') 'The number is -125.' Le texte entre guillemets est transmis.
to_char(125, '"The number is "FM999"."') The number is 125. Le préfixe FM supprime le blanc supplémentaire qui précède normalement le nombre positif.
to_char(12.7, '99.9') ' 12.7' Le résultat est une chaîne de 5 caractères, un pour chaque position dans le modèle, plus un blanc supplémentaire qui précède le nombre à la place d'un signe plus (+).
to_char(12.7, 'FM99.9') '12.7' Le préfixe FM supprime le blanc supplémentaire qui précède normalement le nombre positif.
to_char(0.1, '999.99')
'    .10'
Le résultat est une chaîne de 7 caractères, un pour chaque position dans le modèle. (Le séparateur décimal compte comme position dans le modèle.)
to_char(-0.1, '999.99')
'   -.10'
Le résultat est une chaîne de 7 caractères, un pour chaque position dans le modèle. (Le séparateur décimal compte comme position dans le modèle.)
to_char(-0.1, 'FM999.99') '-.1' Le préfixe FM supprime les blancs qui précèdent le nombre et le zéro qui le suit.
to_char(.1, '0.9') ' 0.1' Le 0 dans le modèle indique que le nombre de zéros à ajouter avant le nombre doit correspondre au nombre de positions inutilisées dans le modèle. Le 0 compte comme position dans le modèle.
to_char(-12.7, '0999.9') '-0012.7' Le 0 dans le modèle indique que le nombre de zéros à ajouter avant le nombre doit correspondre au nombre de positions inutilisées dans le modèle. Le 0 compte comme position dans le modèle.
to_char(12.7, '90999.9')
'  0012.7'
Le résultat est une chaîne de 8 caractères, un pour chaque position dans le modèle, plus un blanc supplémentaire qui précède le nombre à la place d'un signe plus (+).
to_char(-12.7, '9999999')
'     -13'
Le résultat est une chaîne de 8 caractères, un pour chaque position dans le modèle, plus un caractère supplémentaire pour le signe moins (-).
to_char(485, '9 9 9') ' 4 8 5'  
to_char(1485, '9,999') ' 1,485'  
to_char(1485, '9G999') ' 1,485' Le motif G représente le délimiteur de groupe spécifié pour votre environnement local.
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' Le séparateur décimal utilisé dépend de votre environnement local.
to_char(3148.5, '9G999D999') ' 3,148.500' Le motif G représente le délimiteur de groupe spécifié pour votre environnement local.
to_char(125,'S999') '+125' Aucun blanc ne précède le nombre, car le motif S indique que le signe doit toujours être inclus dans la sortie.
to_char(125, '999S') '125+' Aucun blanc ne précède le nombre, car le motif S indique que le signe doit toujours être inclus dans la sortie.
to_char(-485, '999S') '485-'  
to_char(-485, 'MI999') '-485' Pour un nombre négatif, le motif MI place le signe moins (-) à la position correspondante.
to_char(-485, '999MI') '485-'
to_char(485, 'MI999') ' 485' Pour un nombre positif, le motif MI place un blanc à la position correspondante. Le motif MI n'affecte pas le blanc qui précède un nombre positif.
to_char(485, '999MI') ' 485 '
to_char(485, 'FM999MI') '485 ' Le préfixe FM supprime le blanc supplémentaire qui précède normalement le nombre positif, mais il n'affecte pas le blanc suivant le nombre, qui est ajouté par le suffixe MI.
to_char(485, 'PL999') '+485' Pour un nombre positif, le motif PL place le signe plus (+) à la position correspondante.
to_char(485, '999PL') '485+'
to_char(-485, '999PL') '-485 ' Pour un nombre négatif, le motif PL place un blanc à la position correspondante. Le suffixe PL n'affecte pas le signe moins (-) qui précède un nombre négatif.
to_char(-485, 'PL999') ' -485 '
to_char(-3485, 'SG9999') '-3485'  
to_char(-3485, 'S9G999') '-3,485'  
to_char(-3485, '99SG99') '34-85'  
to_char(-485, '999PR') '<485>'  
to_char(485, '999PR') ' 485'  
to_char(485, 'FM999PR') '485' Le préfixe FM supprime le blanc supplémentaire qui précède normalement un nombre positif.
to_char(485, 'RN') 'CDLXXXV'  
to_char(5.2, 'RN') 'V' Les chiffres romains ignorent les fonctions décimales.
to_char(482, '999th') ' 482nd' Un suffixe th génère le suffixe ordinal approprié (st, nd, rd ou th).
to_char(485.8, '"Pre: "FM999" Post:" .999') 'Pre: 485 Post: .800' Le préfixe FM supprime le blanc supplémentaire qui précède normalement un nombre positif.
to_char(485.8, '"Pre: "FM999" Post:" .999') 'Pre: -485 Post: .800' Le préfixe FM n'affecte pas un nombre négatif.
to_char(12, '99V999') ' 12000'  
to_char(12.4, '99V999') ' 12400'  
to_char(12.45, '99V9') ' 125'  


Feedback | Copyright IBM Corporation 2014 | Last updated: 2014-02-28