Composant de temps de bande Mysql de datetime


90

J'ai besoin de faire une comparaison de date dans Mysql sans prendre en compte le composant de temps, c'est-à-dire que je dois convertir '2008-11-05 14:30:00' en '2008-11-05'

Actuellement, je fais ceci:

SELECT from_days(to_days(my_date))

Y a-t-il une bonne façon de procéder?

Réponses:



14

select date(somedate) est la plus courante.

Si vous devez accepter d'autres formats, vous pouvez utiliser:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');

2
Le DATE_FORMAT est très utile pour extraire le composant année uniquement par exemple. Merci.
Mario Awad

3

Dans PostgreSQL, vous utilisez la fonction TRUNC (), mais je ne la vois pas pour MySQL. D'après ma brève recherche sur Google, il semble que vous deviez convertir votre valeur DATETIME pour qu'elle soit juste DATE.

date_col = CAST(NOW() AS DATE)

Voir http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html


1
date_trunc()(non trunc()) ne supprimerait pas réellement la partie de temps dans Postgres. Il le fixerait simplement à 00:00:00ce qui est différent.
a_horse_with_no_name

0

Juste un moyen simple de le faire d' date("d F Y",strtotime($row['date']))$row['date']vient votre requête


-5

Vous pourriez utiliser ToShortDateString();


N'est-ce pas une fonction C #? La question est après une solution MySQL
andrewsi

C'est C # et en fait il ne supprime pas l'horodatage: convertit la valeur de l'objet DateTime actuel en sa représentation sous forme de chaîne de date courte équivalente.
Nizar B.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.