Question sur le type datetime
Posted in 2007
Topics: General Discussion
Translated from English by DrWatson — View original
J'ai une table qui comporte ces colonnes (entre autres) : start_time datetime year to second end time datetime year to second J'ai toujours voulu pouvoir sélectionner simplement le nombre de secondes écoulées en SQL pur, mais je n'y suis jamais parvenu. Je pensais qu'un cast pourrait fonctionner, du genre : ( extend(complete_time,year to fraction) - extend(start_time,year to fraction) )::interval minute(5) to second(2) mais cela génère une erreur de syntaxe. Quand on le fait sans le cast, on obtient des choses peu élégantes comme 0 00:00:16.000 (pour 16 secondes). N'y a-t-il aucun moyen d'obtenir simplement le nombre total de secondes sans passer par du C++, du Perl, etc. ?
Bill64bits a écrit : > J'ai une table qui comporte ces colonnes (entre autres) > start_time datetime year to second > end time datetime year to second > > J'ai toujours voulu pouvoir sélectionner simplement le nombre de secondes écoulées > en pur SQL, mais je n'ai jamais réussi à trouver comment faire. > Je pensais qu'un cast pourrait fonctionner, du genre : > > ( extend(complete_time,year to fraction) - > extend(start_time,year to fraction) )::interval minute(5) to second(2) > > mais cela déclenche une erreur de syntaxe. > > Quand on le fait sans le cast, on obtient des choses horribles comme 0 > 00:00:16.000 (pour 16 secondes). > > N'y a-t-il aucun moyen d'obtenir simplement le total des secondes sans C++, Perl, etc. ? SELECT (complete_time - start_time):: interval second(8) to second .... Art S. Kagel
Bill64bits a écrit : > J'ai une table qui comporte ces colonnes (entre autres) > start_time datetime year to second > end time datetime year to second > > J'ai toujours voulu pouvoir sélectionner simplement le nombre de secondes écoulées en > SQL pur, mais je n'ai jamais réussi à trouver comment faire. > Je pensais qu'un cast pourrait fonctionner, du genre : > > ( extend(complete_time,year to fraction) - > extend(start_time,year to fraction) )::interval minute(5) to second(2) > > mais cela génère une erreur de syntaxe. > > Quand on le fait sans le cast, on obtient des choses peu lisibles comme 0 > 00:00:16.000 (pour 16 secondes). > > N'y a-t-il aucun moyen d'obtenir simplement le total des secondes sans C++, Perl, etc. ? SELECT (complete_time - start_time):: interval second(8) to second .... Art S. Kagel
Merci Art. Tu as mis dans le mille. C'est très étrange, cependant, que WinSql ne l'affiche pas (même après avoir remplacé le « parameter string » par @ au lieu de « :: »). Ça fonctionne bien dans Dbaccess, par contre. ----- Message d'origine ----- De : Art S. Kagel Groupes de discussion : comp.databases.informix À : informix-list@iiug.org Cc : informix-list@iiug.org Envoyé : jeudi 18 janvier 2007 14:14 Objet : Re: question sur datetime Bill64bits a écrit : > J'ai une table qui comporte ces colonnes (entre autres) > start_time datetime year to second > end time datetime year to second > > J'ai toujours voulu pouvoir sélectionner simplement le nombre de secondes écoulées en > SQL pur, mais je n'ai jamais réussi à trouver comment faire. > Je pensais qu'un cast pourrait fonctionner, comme dans : > > ( extend(complete_time,year to fraction) - > extend(start_time,year to fraction) )::interval minute(5) to second(2) > > mais cela génère une erreur de syntaxe. > > Quand on le fait sans le cast, on obtient des trucs disgracieux comme 0 > 00:00:16.000 (pour 16 secondes). > > N'y a-t-il aucun moyen d'obtenir simplement le total des secondes sans C++, Perl, etc. ? SELECT (complete_time - start_time):: interval second(8) to second .... Art S. Kagel _______________________________________________ Liste de diffusion Informix-list Informix-list@iiug.org http://www.iiug.org/mailman/listinfo/informix-list