2008-11-06 6 views
46

Je dois faire une comparaison de date dans Mysql sans prendre en compte la composante temps, c'est-à-dire que je dois convertir '2008-11-05 14:30:00' en '2008-11-05'Composant temps mysql à partir de datetime

Actuellement je fais ceci:

SELECT from_days(to_days(my_date)) 

est-il une bonne façon de le faire?

Répondre

89

Oui, utilisez la fonction date:

SELECT date(my_date) 
3

Dans PostgreSQL vous utilisez la fonction TRUNC(), mais je ne vois pas pour MySQL. À partir de ma brève recherche Google, il semble que vous ayez besoin de diffuser 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() '(pas' trunc() ') ne supprimerait pas * la partie temps de Postgres. Cela signifierait simplement 00: 00: 00', ce qui est quelque chose de différent. –

3

select date(somedate) est la plus courante.

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

SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d'); 
+1

DATE_FORMAT est très utile pour extraire le composant year uniquement par exemple. Je vous remercie. –

-3

Vous pouvez utiliser ToShortDateString();

+0

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

+0

C'est C# et en fait il ne supprime pas l'horodatage: Convertit la valeur de l'objet DateTime en cours à sa représentation de chaîne de date courte équivalente. –

1

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

Questions connexes