Je veux comparer deux colonnes qui ont un format de date différent.

REQ_END_TIME = 03-APR-18 06.15.30.000000000 AM
SENDDATE = 4/3/2018

Les deux ont les mêmes dates, donc je veux juste valider la partie de la date est la même ou non en sautant l'horodatage. Le format SENDDATE est M/D/YYYY

Comment puis-je changer l'un d'entre eux pour le rendre similaire à valider avec une requête.

Base de données - Oracle

0
Avinash Singh 20 nov. 2018 à 17:27

3 réponses

Meilleure réponse

Vous pouvez utiliser CAST et to_date (with the format mask)

select * from mytable
 where to_date(CAST(REQ_END_TIME as char(10)), 'DD/MM/YYYY') =
 to_date(SENDDATE, 'MM/DD/YYYY')

Il reviendra:

03.04.18   =   03.04.18

Requête compilée

0
Georgy 20 nov. 2018 à 20:54

Vous convertiriez les deux en dates ou en chaînes:

where to_date(substr(req_end_time, 9), 'DD-MON-YYYY') = to_date(send_date, 'MM/DD/YYYY')
0
Gordon Linoff 20 nov. 2018 à 18:41

En supposant que SENDDATE est déjà au format de date

select (to_date(REQ_END_TIME,'M/D/YYYY') - SENDDATE ) COMPARE
from mytable
0
Pang 21 nov. 2018 à 02:59