Comment pouvons-nous convertir l'horodatage en date?
La table a un champ, start_ts
qui est au format timestamp
:
'05/13/2016 4:58:11.123456 PM'
J'ai besoin d'interroger la table et de trouver les valeurs maximales et minimales timestamp
dans la table, mais je ne suis pas en mesure de le faire.
Select max(start_ts)
from db
where cast(start_ts as date) = '13-may-2016'
Mais la requête ne renvoie aucune valeur.
Aidez-moi, s'il vous plaît, à trouver l'horodatage maximal pour une date.
CAST(timestamp_expression AS DATE)
Par exemple, la requête est la suivante: SELECT CAST(SYSTIMESTAMP AS DATE) FROM dual;
Essayez plutôt d'utiliser TRUNC
et TO_DATE
WHERE
TRUNC(start_ts) = TO_DATE('2016-05-13', 'YYYY-MM-DD')
Sinon, vous pouvez utiliser >=
et <
à la place pour éviter d'utiliser la fonction dans la colonne start_ts
:
WHERE
start_ts >= TO_DATE('2016-05-13', 'YYYY-MM-DD')
AND start_ts < TO_DATE('2016-05-14', 'YYYY-MM-DD')
utiliser cette mise en forme tout en sélectionnant
to_char(systimestamp,'DD-MON-YYYY')
Par exemple:
sélectionnez to_char (systimestamp, 'DD-MON-YYYY') dans dual;
Si le type de données est timestamp, le format visible est sans importance.
Vous devriez éviter de convertir les données en date ou d'utiliser to_char. Comparez plutôt les données d'horodatage aux valeurs d'horodatage à l'aide de TO_TIMESTAMP ()
WHERE start_ts >= TO_TIMESTAMP('2016-05-13', 'YYYY-MM-DD')
AND start_ts < TO_TIMESTAMP('2016-05-14', 'YYYY-MM-DD')
Vous pouvez utiliser: select to_date (to_char (date_field, 'jj/mm/aaaa')) de la table.