Si vous réduisez la largeur à 20 il ne sera pas assez large pour le défaut TIMESTAMP ou TIMESTAMP WITH TIME ZONE format. Lorsque cela se produit, SQLPlus occupera de l'emballage de la valeur.
Supposons que la table b a colonne timestamp TS:
COLUMN ts FORMAT A20
SELECT ts FROM b;
TS
--------------------25-APR-13 11.28.40.150000 AM
De réduire la largeur même plus, de décider quelles sont les informations que vous voulez et format en conséquence. L'Oracle DateTime et Timestamp codes de mise en forme sont répertoriés ici.
Noter que SQLPlus ne vous laisseront pas de spécifier un format de date avec le COLUMN déclaration. C'est pourquoi j'ai utilisé FORMAT A20 ci-dessus. Vous pouvez l'obtenir à 19 caractères si vous déposez des fractions de secondes et utiliser une horloge de 24 heures au lieu de AM/PM, et déposez le time zone:
COLUMN TSFormatted FORMAT A20
SELECT TO_CHAR(ts,'MM/DD/YYYY HH24:MI:SS')AS TSFormatted FROM b;
TSFORMATTED
--------------------04/25/201311:28:40
Si vous êtes prêt à déposer le siècle, vous pouvez obtenir deux fractions de secondes et une largeur exacte de 20:
COLUMN TSFormatted FORMAT A20
SELECT TO_CHAR(ts,'MM/DD/YY HH24:MI:SS.FF2')AS TSFormatted from b;
TSFORMATTED
--------------------04/25/1311:28:40.15
Enfin, si vous voulez que tous vos horodatages pour être automatiquement formaté d'une certaine manière, l'utilisation ALTER SESSION:
ALTER SESSION SET NLS_TIMESTAMP_FORMAT ='MM/DD/YY HH24:MI:SS.FF2';COLUMN ts FORMAT A20
SELECT ts from b;-- don't need to_char because of the default format
TS
--------------------04/25/1311:28:40.15
Superbe réponse. J'ai réalisé le 20 était trop peu et trouvé que 30 était trop belle. cependant, vous avez quelques excellentes méthodes que je vais utiliser trop. PS: si quelqu'un pouvait me donner un peu plus de points de réputation que je puisse voter pour les réponses que je viens d'adhérer et ne peut rien faire encore. Des acclamations. Ceci est utile, mais je ne comprends pas pourquoi "COLONNE ts FORMAT A20" est nécessaire après l'alter session. Est-il un moyen d'obtenir le timestamp à afficher dans 20 caractères session à l'échelle indépendamment du format? Désolé @sf_jeff, mais je lui ai répondu qu'il y a si longtemps que je ne me souviens pas exactement pourquoi je l'ai mis dans le COLUMN ts... peu. Je pense que c'était peut-être à conduire à la maison, au point que la A20 enveloppé avec la mise en forme par défaut (le premier exemple dans ma réponse), mais n'a pas après la création du nouveau format d'horodatage. Quelle que soit la raison, vous pouvez quitter définitivement.
SUBSTR fonction certains du temps,une fois que vous avez converti le timestamp (ie. to_CHAR) mais la spécification d'une colonne dans sqlplus vous donne plus de contrôle:
Je dis certains du temps pour substr, comme je l'ai vu sqlplus coupés de la production, mais encore le pavé de la sortie jusqu'à la taille définie pour la colonne.
Oui, je vous remercie. À la suite de la requête avec la COLONNE "column_name FORMAT A30 WORD_WRAPPED /" a Résolu le problème. Heureux de l'aider - pourriez-vous jusqu'upvote la réponse, veuillez dans ce cas? Salut, je voudrais faire, mais je suis nouveau et il dit qu'il n'ai pas de réputation! Envie de me jeter un os et je vais y aller 🙂
Si vous réduisez la largeur à 20 il ne sera pas assez large pour le défaut
TIMESTAMP
ouTIMESTAMP WITH TIME ZONE
format. Lorsque cela se produit, SQLPlus occupera de l'emballage de la valeur.Supposons que la table
b
a colonne timestampTS
:De réduire la largeur même plus, de décider quelles sont les informations que vous voulez et format en conséquence. L'Oracle DateTime et Timestamp codes de mise en forme sont répertoriés ici.
Noter que SQLPlus ne vous laisseront pas de spécifier un format de date avec le
COLUMN
déclaration. C'est pourquoi j'ai utiliséFORMAT A20
ci-dessus. Vous pouvez l'obtenir à 19 caractères si vous déposez des fractions de secondes et utiliser une horloge de 24 heures au lieu de AM/PM, et déposez le time zone:Si vous êtes prêt à déposer le siècle, vous pouvez obtenir deux fractions de secondes et une largeur exacte de 20:
Enfin, si vous voulez que tous vos horodatages pour être automatiquement formaté d'une certaine manière, l'utilisation
ALTER SESSION
:Ceci est utile, mais je ne comprends pas pourquoi "COLONNE ts FORMAT A20" est nécessaire après l'alter session. Est-il un moyen d'obtenir le timestamp à afficher dans 20 caractères session à l'échelle indépendamment du format?
Désolé @sf_jeff, mais je lui ai répondu qu'il y a si longtemps que je ne me souviens pas exactement pourquoi je l'ai mis dans le
COLUMN ts...
peu. Je pense que c'était peut-être à conduire à la maison, au point que laA20
enveloppé avec la mise en forme par défaut (le premier exemple dans ma réponse), mais n'a pas après la création du nouveau format d'horodatage. Quelle que soit la raison, vous pouvez quitter définitivement.OriginalL'auteur Ed Gibbs
SUBSTR fonction certains du temps,une fois que vous avez converti le timestamp (ie. to_CHAR) mais la spécification d'une colonne dans sqlplus vous donne plus de contrôle:
par exemple:
COLONNE SALAIRE FORMAT $99,990
Source:
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch6.htm
Je dis certains du temps pour substr, comme je l'ai vu sqlplus coupés de la production, mais encore le pavé de la sortie jusqu'à la taille définie pour la colonne.
Heureux de l'aider - pourriez-vous jusqu'upvote la réponse, veuillez dans ce cas?
Salut, je voudrais faire, mais je suis nouveau et il dit qu'il n'ai pas de réputation! Envie de me jeter un os et je vais y aller 🙂
OriginalL'auteur marceljg