Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 16h04   #1
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Par défaut Datetime et moins de 12 heures.

Salut,

J'ai dans une base données des champs de type datetime et j'aimerai savoir comment je pourrai récupérer des lignes ou le datetime a au moins 12 heures.

Par exemple je voudrais une requete comme ceci:
select * from user where "user_date_created a moins de 12 heures"

Sachant que user_date_created est de type datetime et a donc des valeurs comme ceci: "2011-08-08 09:45:25"

Merci,
Vincent.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 16h15   #2
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Quelques chose comme ça :

Code :
SELECT * FROM user WHERE HOUR(CURTIME()) - HOUR(user_date_created) < 12 AND DATEDIFF(NOW(),user_date_created) = 0
Voir :http://dev.mysql.com/doc/refman/5.0/...functions.html pour plus d'infos
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 17h02   #3
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par grunk Voir le message
Quelques chose comme ça :

Code :
SELECT * FROM user WHERE HOUR(CURTIME()) - HOUR(user_date_created) < 12 AND DATEDIFF(NOW(),user_date_created) = 0
Voir :http://dev.mysql.com/doc/refman/5.0/...functions.html pour plus d'infos
Salut,

J'ai essayé et ca marche, merci.

Par contre, si le jour a changé mais que l'on est encore dans la tranche des 12 heures, ca marchera ou pas ?

Merci,
Vincent.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 17h11   #4
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Citation:
Par contre, si le jour a changé mais que l'on est encore dans la tranche des 12 heures, ca marchera ou pas ?
En principe non , c'est le role du DATEDIFF() =0

J'ai pas tester donc à toi de vérifier
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 14h39   #5
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par grunk Voir le message
En principe non , c'est le role du DATEDIFF() =0

J'ai pas tester donc à toi de vérifier
J'ai bien regarder la doc et j'ai pas trouvé comment transformer une date de type datetime comme mktime en PHP pour récupérer les champs d'une table qui ont au moins 12 heures sans prendre en compte le jour.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 15h06   #6
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Code :
SELECT * FROM user WHERE HOUR(DATEDIFF(NOW(), user_date_created)) < 12
Devrait mieux répondre à ce que tu veux faire.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 17h41   #7
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par grunk Voir le message
Code :
SELECT * FROM user WHERE HOUR(DATEDIFF(NOW(), user_date_created)) < 12
Devrait mieux répondre à ce que tu veux faire.
Apparemment cela ne marche pas puisque j'ai en retour des résultats qui ont plusieurs jours !
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 18h15   #8
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
à moi d'essayer ! si j'en crois cette syntaxe ...
Citation:
SELECT * FROM user WHERE DATEDIFF(Hour, NOW(), user_date_created) < 12
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 18h27   #9
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par jreaux62 Voir le message
Bonjour,
à moi d'essayer ! si j'en crois cette syntaxe ...
Salut, merci.

Je viens de trouver qqchose qui apparemment marche:
Code :
SELECT * FROM user WHERE user_date_created >= date_sub( now( ) , INTERVAL 12 HOUR )
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h58.


 
 
 
 
Partenaires

Hébergement Web