date sous la forme JJ-MMM-AAAA eg 29-JAN-2015
Je veux la date de DD-MMM-YYYY
format eg 29-JAN-2015.
J'ai essayé avec ci-dessous requête
SELECT TRIM(TO_DATE('29 Jan 2015'
,'DD MON YY')) FROM DUAL
J'ai eu comme résultat: 29-JAN-15
Mais je suis dans l'attente d': 29-JAN-2015
dans le format de date pas de char format
TO_DATE(SYSDATE ,'MON DD YYYY'))?
Si vous souhaitez formater une date particulière, utilisez
J'ai une table dans mon projet, en ce qu'elle a de la colonne de char, il a de la valeur comme "09 jan 2014'. sélectionnez la GARNITURE(TO_DATE('14 Jan 2004' ,'DD LUN YY')) from dual. Je veux dans le format de date en conséquence pas dans le char.désolé pour donner comme sysdate dans ma requête.
TO_DATE(SYSDATE, 'DD MON YY')
est un non-sens complet. Vous êtes implicitement la conversion d'un date
à une chaîne, juste pour la convertir à date
de nouveau.Si vous souhaitez formater une date particulière, utilisez
TO_CHAR()
pas TO_DATE()
. Et vous ne devriez pas avoir besoin TRIM()
. Simplement TO_CHAR(SYSDATE, 'DD-MON-YYYY')
.J'ai une table dans mon projet, en ce qu'elle a de la colonne de char, il a de la valeur comme "09 jan 2014'. sélectionnez la GARNITURE(TO_DATE('14 Jan 2004' ,'DD LUN YY')) from dual. Je veux dans le format de date en conséquence pas dans le char.désolé pour donner comme sysdate dans ma requête.
OriginalL'auteur Sravanth Kothuri | 2015-01-29
Vous devez vous connecter pour publier un commentaire.
Im en supposant Oracle DB:
Retourne
... mais que les changements de votre question initiale...
OriginalL'auteur rbm
Merci pour les réponses.
J'ai eu la solution. Nous avons d'abord besoin de modifier la session en tant que ci-dessous:
alter session set nls_date_format='DD-MON-YYYY";
puis exécutez la requête:
SÉLECTIONNEZ la GARNITURE(TO_DATE('29 Jan 2015'
,'MON DD YYYY'))
DE DOUBLE
Maintenant, j'ai eu comme résultat:29-JAN-2015
SELECT TRIM(TO_CHAR(TO_DATE('29 Jan 2015', 'DD MON YYYY'), '<nls_date_format>')) from dual;
QueTRIM
est totalement inutile.Beaucoup, beaucoup mieux pour faire la conversion explicite dans l'énoncé, de sorte que n'importe qui l'exécute, il fonctionnera comme prévu. E. g.
SELECT TO_CHAR(TO_DATE('29 Jan 2015', 'DD MON YYYY', 'nls_date_language=''american'''), 'DD MON YYYY', 'nls_date_language=''american''') from dual;
Dans mon code, je l'ai modifier la session quand elle avait besoin et j'ai changé de vieux après, je l'ai récupéré le résultat. Plus de plus de, je veux de format de date n'en format char u comme suggéré, lire la question encore une fois. Rien n'est de la chance pure. J'ai eu cette solution par googler
Chaque fois que vous afficher quelque chose qui est dans le format de date, votre sont en fait le reconvertir en une chaîne de caractères (en particulier lorsque vous êtes à la jeter dans une fonction qui ne fonctionne qu'avec des cordes!). Alors oui, c'supplémentaire to_char est nécessaire, en supposant que vous êtes désireux de voir la date affichée dans un format particulier. En s'appuyant sur l'évolution de la nls_date_format paramètre est, à mon avis, rien de folie. C'est quelque chose que vous faites sur une base ad-hoc, et ne faisant pas partie de la bonne production de code. Pourquoi s'embêter avec les deux commandes distinctes quand vous pouvez le faire en un seul?
Qu'est-ce exactement que vous êtes désireux de le faire avec la date une fois que vous avez obtenu dans le bon format? Si c'est pour mettre à jour une autre colonne qui est une DATE (ou le stocker dans une variable de DATE ou quelque chose), puis de se soucier de la façon dont la chaîne est mise en forme n'est pas pertinent, puisque c'est déjà une date.
OriginalL'auteur Sravanth Kothuri
Ce que vous faites est de prendre la chaîne "29 Jan 2015' et d'en faire une date en utilisant le format "DD LUN YY'. Cet échec de cours pour '2015' ne correspond pas à "aa", mais Oracle est clémente ici.
Puis vous utilisez la GARNITURE sur la date. Mais la GARNITURE est pour les chaînes. Ce qui se passe, c'est que vous vous montré '29 Jan 15'. Je me suis montrée 29.01.15 "au lieu de l'habituel "29.01.2015'. Toutefois le comportement: Ne pas utiliser la GARNITURE sur les dates, et son comportement est nulle part précisé que ce que je sache. Utilisation TO_CHAR pour formater une date de sortie.
Si vous n'en sélectionnez une date sans TO_CHAR vous obtenez la date indiqué dans un format standard, qui peut être "29 Jan 2015' ou '29 Jan 15" ou "29.01.2015" ou "01/29/2015", en fonction de l'application que vous utilisez et éventuellement certains paramètres therin.
Par souci d'exhaustivité:
TO_DATE prend une chaîne de caractères ('29 Jan 2015' dans votre cas) et la convertit en un jour. Si la chaîne contient des noms, assurez-vous que vous spécifiez le paramètre de langue:
Pour obtenir une chaîne formatée à partir d'une date, utilisez TO_CHAR:
Habituellement, vous n'avez pas à le faire, cependant. Vous sélectionnez un jour et avoir votre application (écrit en PHP, Java ou autre) de soins au sujet de la façon de les afficher de manière appropriée à l'utilisateur des paramètres de l'ordinateur.
OriginalL'auteur Thorsten Kettner
Dans SQL Server la requête
retourne:
-
), mais il peut être utile d'avoir un lien où le nombre106
obtenir expliqué au cas où quelqu'un cherche des solutions de rechange. Merci.OriginalL'auteur Mahesh
Manu est correct. Oracle publie une liste complète de date de spécificateurs de format.
http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#CDEHIFJA
to_date()
sur undate
n'a pas de sens. En outre: lien seules réponses sont mal vu iciExcuses - signifiait rbm avec le to_char.
OriginalL'auteur gnuchu
Utilisation
CONVERT(VARCHAR(11),GETDATE(),106)
Voir l'explication détaillée ici:
http://www.w3schools.com/sql/func_convert.asp
C'est la syntaxe SQL Server plutôt que d'Oracle
OriginalL'auteur Jay Vomex
Pouvez-vous essayer:
YY
affichera uniquement les 2 algorithmes de chiffrement, au lieu deYYYY
qui montrera 4.TO_DATE(SYSDATE ,'DD MON YYYY')
est un non-sensPour votre requête, le résultat viendra 29-JAN-15 pas 29-JAN-2015. j'ai mal requête en question, c'est correct, choisissez la GARNITURE(TO_DATE('14 Jan 2004' ,'MON DD YYYY')) from dual. Je ne suis pas comme le 14-jan-2004
OriginalL'auteur Manu