Comment convertir “1985-02-07T00:00:00.000 Z” (ISO8601) à une valeur de date dans Oracle?
J'ai essayé de convertir un horodatage ("1985-02-07T00:00:00.000 Z") à une date et je n'ai pas réussi à réussir dans mes différentes tentatives.
Ci-dessous est la requête que j'ai essayé:
select to_date('1985-02-07T00:00:00.000Z', 'YYYY-MM-DDTHH24:MI:SS.fffZ')
from dual;
Vos suggestions sont grandement appréciés.
- +1 pour essayer des trucs. Vous pouvez faire de la question de mieux en incluant ce que les résultats ont été et comment ils ont été mal ou ce qui en général n'a pas fonctionné. (Y avait-il une erreur? A la date de quelques heures?)
- Selon to_date je crois qu'au moins "fff" est incorrecte et doit être "FF3". Mais je ne l'utilise/Oracle 🙂
InformationsquelleAutor Abilash | 2011-12-28
Vous devez vous connecter pour publier un commentaire.
to_date
convertit l'entrée d'uneDATE
type qui ne prend pas en charge les fractions de secondes. Pour utiliser les fractions de secondes, vous devez utiliser unTIMESTAMP
type qui est créé lors de l'utilisation deto_timestamp
pst du commentaire à propos de la
ff3
modificateur est également correcte."Constante" valeurs " dans le masque de format doivent être entourées de guillemets doubles
De sorte que la déclaration finale est:
Certains les règles à suivre:
MM
s'attend à un numéro du mois,"MM"
s'attend à un double-M.FF
, pasF
ouFFF
. Vous spécifiez le nombre de chiffres avec un trailing entier, par exempleFF3
.FF3
dans ce contexte.Cela fonctionne:
Je ne sais pas si il y a une façon d'ignorer les fractions de secondes dans
TO_DATE()
donc j'ai utilisé des fonctions de manipulation de chaîne de la bande de sortir:si tu veux obtenir la chaîne de caractères en format datetime ensuite, essayez ceci....
uniquement pour la date de simplement utiliser...