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?

abarax
la source

Réponses:

160

Oui, utilisez la fonction de date :

SELECT date(my_date)
Robert Gamble
la source
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');
Communauté
la source
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

Andy Lester
la source
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

Rajeev Kumar
la source
-5

Vous pourriez utiliser ToShortDateString();

Jupirao Bolado
la source
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.