oracle SQL, comment faire pour supprimer le temps à partir de la date
J'ai une colonne nommée StartDate
contenant une date dans ce format: 03-03-2012 15:22
Ce dont j'ai besoin est de le convertir en jour. Il devrait être comme ceci: DD/MM/YYYY
Ce que j'ai essayé, sans succès, est:
select
p1.PA_VALUE as StartDate,
p2.PA_VALUE as EndDate
from WP_Work p
LEFT JOIN PARAMETER p1 on p1.WP_ID=p.WP_ID AND p1.NAME = 'StartDate'
LEFT JOIN PARAMETER p2 on p2.WP_ID=p.WP_ID AND p2.NAME = 'Date_To'
WHERE p.TYPE = 'EventManagement2'
AND TO_DATE(p1.PA_VALUE, 'DD/MM/YYYY') >= TO_DATE('25/10/2012', 'DD/MM/YYYY')
AND TO_DATE(p2.PA_VALUE, 'DD/MM/YYYY') <= TO_DATE('26/10/2012', 'DD/MM/YYYY')
Est-il un moyen de faire cela?
EDIT1: le PA_VALUE
colonne est: VARCHAR2
Vous devez vous connecter pour publier un commentaire.
Lorsque vous convertissez votre chaîne à une date vous avez besoin pour correspondre à la date de masque pour le format de la chaîne. Cela comprend un élément de temps, que vous devez supprimer avec la troncature:
Vous pouvez utiliser TRUNC DateTime pour supprimer la partie du Temps de type DateTime. Si votre clause where peut être:
p1.PA_VALUE
. Quelle est la valeur à l'intérieur de la colonne et de toutes les valeurs ont le même format ?TRUNC
pour le comparer à la Date de la partie.Nous pouvons utiliser la fonction TRUNC dans Oracle DB. Ici est un exemple.
De sortie:
1/1/2018
Essayer