0
votes

Convertir de Teradata en Oracle

Aidez-moi à la conversion de la requête suivante écrite dans Teradata vers Oracle SQL.

SELECT cast((substr( CAST(CURRENT_TIMESTAMP(0) AS varchar(19)), 1,4) as decimal(18,0)) as termid from source1


2 commentaires

Donc, ce n'est pas un service de conversion de code gratuit. Faites une elfor pour faire la conversion vous-même. Lorsque vous avez effectué ainsi des problèmes, vous pouvez expliquer ce problème, ajouter les portions pertinentes de l'ancien code et de votre code et poser une question spécifique liée à ce code et nous pouvons essayer d'aider. Vous trouverez que vos expréences ici seront bien meilleures si vous passez du temps à prendre le tour et lisant le centre Pour savoir comment fonctionne le site et quelles sont nos attentes avant de commencer à poster.


Semble être un extrait simple (année de courant_timettamp) qui fonctionne à la fois dans Teradata et Oracle


3 Réponses :


0
votes

Vous devez utiliser sur TO_CHAR avec horodatage explicitement depuis le format horodatage peut contenir des mots xxx


2 commentaires

Sélectionnez Cast (substrateur (TO_CHAR (CURCENT_TIMESTAMM (0), 'AAAAY-MM-DD HH: MI: SS'), 1,4) Comme numéro (18,0)) en termes de termes de double. Merci@ Psaraj12


@Ali Cela n'a aucun sens d'utiliser une chaîne de format longue et, par la suite, la coupe de l'année à l'aide de Substr. Il suffit d'utiliser une chaîne de format de 'yyyy'



0
votes

Si vous voulez l'année en cours, cela le fera dans Oracle:

select to_char(Current_Timestamp(0),'YYYY') termid from dual;


0 commentaires

1
votes

Votre calcul actuel extrait l'année en tant que valeur numérique. Dans Teradata et Oracle, cela peut être réalisé facilement en utilisant

extract(year from current_timestamp)


0 commentaires