KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Vendredi 16 mai 2008 - 12:46:36

Mysql - conversion integer en date

Rechercher : dans
Mysql - conversion integer en date
par ykolb
 Fil de Discussions
Statut : Résolu
lundi 19 septembre 2005 à 10:43:10
bonjour,

j'ai un petit dépannage a effectuer sur une appli en base mysql.
Je dois rechercher les enregistrements effectués pour une date précise dans une table.
J'ai une colonne date mais au format int(10) unsigned.

J'ai essaye ( mal ?) les commandes convert et cast mais au select j'ai toujours une reponse en integer.

Quelle est la syntaxe exacte à suivre pour selectionner et afficher les resultats au format date.


Merci.
Répondre à ykolb  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par trysac, le lundi 19 septembre 2005 à 13:04:00 Fil de Discussions
bonjour

si j ai bien compri tu a dans ta table mysql le champ ddate sous la forme de time()

pour trouvre le timestamp a partire d'une date la commende est:

$timestamp = mktime(heure, minutes, secondes, mois, jour, an);

ex:
le timestamp du 5 Février 1998 à 13h 45min 26s est:
$vieux_timestamp = mktime(13, 45, 26, 2, 5, 1998);

j esper que je t ai aidé

trysac
Répondre à trysac

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ykolb, le lundi 19 septembre 2005 à 13:38:51 Fil de Discussions
Je me suis peut etre mal exprime.

Ci joint un desc de ma table sous MySql;

desc t_Heures;
+-------------+------------------+------+-----+-----------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+-----------+----------------+
| matricule | varchar(10) | | MUL | | |
| debut | int(10) unsigned | | | 0 | |
| fin | int(10) unsigned | | | 0 | |

Debut et fin correspondent à des dates et heures de travail.

Je souhaite effectuer une requete pour savoir qui à travaillé tel jour.

Si je fais une requete select
select debut from t_Heures;
j'obtiens cela.
| 1126360800 |
| 1126346400 |
| 1126360800 |
| 1126702800 |
| 1126346400 |

Et je voudrais que cela m'affiche plutot quelque chose comme cela parce que je ne sais pas à quoi correspond la valeur 1126346400 !!
16/09/2005 09:00
16/09/2005 12:15
etc....

j'ai essaye la commande suivante
select CONVERT(debut,DATE) from t_Heures;
mais j'obtiens le meme résultat !!!


Merci
Répondre à ykolb

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par trysac, le lundi 19 septembre 2005 à 15:53:47 Fil de Discussions
re bonjour

oui j avais mal compri

pour cela tu fais l opperation inverce:

ex: tu veu savoir a quel jour correspond 1080513608:
<?

$timestamp = 1080513608;

echo date('d/m/Y', $timestamp); // te donnera la date correspondante soit le29/03/2004


?>

c bon??? ou j suis trop broullion?
Répondre à trysac

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par trysac, le lundi 19 septembre 2005 à 16:03:40 Fil de Discussions
et

<? echo date('H\h i\m\i\n s\s', $timestamp); ?> pour avoir heur minute seconnde de la forme XX H YYm ZZ s

dsl pour l oubli ;-)
Répondre à trysac

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ykolb, le lundi 19 septembre 2005 à 16:18:20 Fil de Discussions
hum, du dur mais je ne suis peut etre pas tres doué.

1) admetons , mais comment le rentrer dans ma requete sql ? Je veux ressortir toutes les personnes ayant travaille un jour donné.

2) j'ai essayé avec la syntaxe que tu m'indiques !! ??
voila le resultat
mysql> $timestamp=1127050200;
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '$timestamp=1127050200' at line 1
mysql> timestamp=1127050200;
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'timestamp=1127050200' at line 1
mysql> echo date('d/m/Y', 1127050200)


T'es sur que ca marche dans mysql ?


merci
Répondre à ykolb

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par trysac, le lundi 19 septembre 2005 à 17:06:23 Fil de Discussions
le dut est que tu trouve par toi meme et non que je te donne la reponse :

tes date sont sous la forme timstamps dans ta base de donnees

tu veux que en donnant une date sous la forme date( ) my_sql tu dise toute les personnes qui on travaillé ce jour la:

page1.php

tu rentre ta date au format date( ) dans un formulaire qui renvoi a page reponse

<FORM name='date' action='reponse2.php' method='POST'>
heur:<input type="text" name="heur" />
minute ....
seconnde (tu peu metre O pour allé plus vite)

mois...
jour...
an...
</form>


page reponse.php

$heur= AddSlashes (htmlspecialchars($_POST['heur']));
$min = ....
etc...


tu doi retransformé ta date date( ) en timestamps:

$timestamp = mktime(heure, minutes, secondes, mois, jour, an);

$reponse=mysql_query("SELECT * FROM ta table WHERE ton champ=$timestamp ");

while($donnees=mysql_fetch_array($reponse))
{

$date1=$donnees['ton champ'];

}

tu retransforme $timestamps en date( ) grase a :
date('d/m/Y', $timestamp);

voila
Répondre à trysac

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ykolb, le lundi 19 septembre 2005 à 17:31:40 Fil de Discussions
Oula !!mais tu me parles php !!
Moi je te parles MySql. Je ne veux pas passer par des pages php. Mais simplement trouver des enregistrements en sql pur pour pouvoir ensuite deleter les lignes qui ont été saisies ce jour.

Je n'ai pour ma part jamais developper en php, non pas que ce ne soit pas interressant, mais je n'ai pas trop le temps. La j'essai juste de debloquer une appli développer par un tiers.
Merci quand meme.

Sinon j'ai cherché dans les docs mais a part la fonction 'convert' citée précedemment , et qui ne fonctionne pas comme je l'utilise, je n'ai rien trouvé.


Une autre idee , peut etre ??
Répondre à ykolb

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par trysac, le lundi 19 septembre 2005 à 18:13:49 Fil de Discussions
...

desolé alors je ne vai pas pouvoir t aidé... car je ne me sert de mysql que a travers php...

bon courage et bonne chance

trysac
Répondre à trysac

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ykolb, le mardi 20 septembre 2005 à 08:52:32 Fil de Discussions
bon, quelqu'un s'y connait il en sql pur ?
quelle est la commande/syntaxe qui me permet de convertir dans une requete un champ integer en date ?

select convert(monchamp, date) from matable;

mais mon exemple ne marche pas ?

MErci
Répondre à ykolb

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par ykolb, le mardi 20 septembre 2005 à 11:57:10 Fil de Discussions
OK j'ai trouve. Il faut utiliser la fonction from_unixtime(date) pour la conversion.

select from_unixtime(debut) from t_Heures;

On peut aussi spécifier le format
select from_unixtime(debut,'%Y %M %D') from t_Heures;
Répondre à ykolb

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par SleT, le samedi 17 novembre 2007 à 01:20:30 Fil de Discussions
Merci pour cette réponse, je me demandais comment le faire en sql, je sais le faire en php aussi maintenant :-)

Cordialement.
Répondre à SleT

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par fred, le vendredi 11 avril 2008 à 11:56:46 Fil de Discussions 
bien joué !!!

heuresement que tu as trouvé toi meme ;) oh les boulets !!!
Répondre à fred
Discussions pertinentes trouvées dans le forum
13/04 21h21conversion en date (php/mysql)Webmastering01/07 14h547
13/02 11h22EXCEL : convertir une date en texteBureautique13/02 12h024
19/06 18h51(Excel) Conversion de dateLogiciels/Pilotes02/03 13h254
05/10 16h47Macro Excel : Convertion des dates en texteProgrammation04/10 13h055
Plus de discussions sur « Mysql conversion integer en date » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide