J'ai une table dans la base de données MySQL qui est configurée avec DATETIME
. Je dois SELECT
dans ce tableau uniquement par DATE et à l'exclusion de l'heure.
Comment puis-je SELECT
dans ce tableau par date uniquement et en contournant l'heure, même si cette colonne spécifique est définie sur DATETIME
?
Exemple
C'est maintenant:
2012-01-23 09:24:41
Je dois faire un SELECT
seul pour ça:2012-01-23
Réponses:
SELECT DATE(ColumnName) FROM tablename;
Plus d'informations sur la fonction MySQL DATE () .
la source
vous pouvez utiliser date_format
pour le fuseau horaire
la source
Vous ne pouvez utiliser que
select DATE(time) from appointment_details
pour la dateou
Vous ne pouvez utiliser que
select TIME(time) from appointment_details
pour le tempsla source
Essayez d'utiliser
pour aujourd'hui:
pour la date sélectionnée:
la source
Dans MYSQL, nous avons une fonction appelée DATE_FORMAT (date, format) . Dans votre cas, votre déclaration de sélection deviendra comme ceci: -
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
Pour plus d'informations sur les fonctions Mysql DATE et TIME, cliquez ici.
la source
Vous pouvez simplement faire
la source
J'ai essayé de faire un
SELECT DATE(ColumnName)
, mais cela ne fonctionne pas pour lesTIMESTAMP
colonnes † car elles sont stockées en UTC et la date UTC est utilisée au lieu de la conversion en date locale. J'avais besoin de sélectionner des lignes qui étaient à une date spécifique dans mon fuseau horaire, donc en combinant ma réponse à cette autre question avec la réponse de Balaswamy Vaddeman à cette question , voici ce que j'ai fait:Si vous stockez des dates sous
DATETIME
Fais juste
SELECT DATE(ColumnName)
Si vous stockez des dates sous
TIMESTAMP
Chargez les données de fuseau horaire dans MySQL si vous ne l'avez pas déjà fait. Pour les serveurs Windows, consultez le lien précédent. Pour les serveurs Linux, FreeBSD, Solaris et OS X, procédez comme suit:
Puis formatez votre requête comme ceci:
Vous pouvez également mettre ceci dans la
WHERE
partie de la requête comme ceci (mais notez que les index sur cette colonne ne fonctionneront pas):(Évidemment, remplacez
America/New_York
votre fuseau horaire local.)† La seule exception à cela est si votre fuseau horaire local est GMT et que vous ne faites pas d'heure d'été car votre heure locale est la même que UTC.
la source
Essayer
SELECT * FROM Profiles WHERE date(DateReg)=$date
où $ date est dans aaaa-mm-jjAlternativement
SELECT * FROM Profiles WHERE left(DateReg,10)=$date
À votre santé
la source
Vous pouvez essayer ceci:
Si vous vérifiez ce qui suit:
Vous pouvez voir que cela prend beaucoup de temps.
la source
la source
Veuillez essayer cette réponse.
la source
Utilisation
DATE_FORMAT
exemple:
la source
Celui-ci peut être utilisé pour obtenir la date au format «aaaa-mm-jj».
la source
si la colonne de temps est sur l'horodatage, vous obtiendrez la valeur de la date à partir de cet horodatage en utilisant cette requête
la source
Dans l'intérêt de mettre réellement une solution de travail à cette question:
Évidemment, vous pouvez changer la fonction NOW () en n'importe quelle date ou variable que vous voulez.
la source