|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 25 ![]() |
Bonjour,
Ma question est la suivante: Peut on se baser sur la colonne timestamp d'une table afin de ne récupérer que les lignes qui ont été modifiées ou crées à partir d'une date donnée ? Si oui comment faire ? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : février 2006 Messages : 28 ![]() |
Salut !
Peux tu donner plus de précisions sur cette colonne "timestamp" s'il te plait. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 25 ![]() |
Hello,
j'ai des tables qui ont été crée avec une colonne de type timestamp. Lorsque des insert sont fait sur cette table, ce champs est mis à jour automatiquement par rapport à la date du systeme je suppose ? (de meme lors des update) Je ne sais pas comment l'utiliser, apparemment c'est different d'un datetime... Si quelqu'un peux m'expliquer à quoi correspond ce type? Merci |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : février 2006 Messages : 28 ![]() |
Apparemment tu ne peux pas l'utilser en la comparant à une date car elle ne contient aucune information de date/heure:
extrait du manuel de référence PDF "Vol1 élément syntaxique": Contrairement au type de données timestamp standard de SQL, le type timestamp de Transact-SQL ne contient pas d’information sur la date et l’heure. Il contient des données de type binaire, comme celle-ci : timestamp ------------------ 0x0001000000000e51 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2004 Messages : 25 ![]() |
Oki merci SQL972 pour la réponse.
Si je comprend bien il est donc possible de les comparer entre eux mais pas avec des datetimes... Merci |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : février 2006 Messages : 28 ![]() |
Tu pourrais créer une colonne de type Datetime qui serait mise à jour par un trigger...
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
bonjour
c'est possible d'utiliser la close where sur le champs timestamp pour recupérer les lignes à partir de la date etant donné que timestamp regroupe l'heure et la date, tu utilise la fonction left sur le champs timestamp parce ce que je crois que tu tu connais les dates sur lesquelles tu feras le tri exp select * from compte_client where left(ccl_timestamp,10)='2006-02-06' merci |
|
|
00
|
|
|
#8 |
![]() ![]() |
Euh... je crois qu'il doit y avoir confusion.
Un champs "timestamp" dans Sybase ASE n'a aucune relation avec la date ou l'heure. C'est un champ binaire de 8 octets dont la valeur est mise à jour automatiquement chaque fois que l'enregistrement est modifié. Il n'est donc pas possible d'extraire la date à partir du timestamp. Le choix du nom de ce datatype est évidemment particulièrement malheureux... cela fait depuis 1989 que j'utilise Sybase, et depuis 1991 que je suis actif sur le net et j'ai l'impression que cette discussion est répétée au moins une fois par mois :-) Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#9 | |
|
Membre du Club
![]() |
bonjour
Citation:
mais si ce champ est binaire il faut alors faise un cast en datetime et ensuite il faire la requete mais toute fois je suis surpris d'apprendre que ds ASE le champs timestamp est binaire mais je suis moi depuis longtemp ds ASA il est de type datetime merci |
|
|
|
00
|
|
|
#10 | ||
![]() ![]() |
Comme je l'ai mentionné dans mon précédent message, dans ASE le champ timestamp n'a aucune relation avec la date ou l'heure:
Code :
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() |
bonjour jeffk
pour mieux vous aider pouvez vous nous dire si vous utiliser ASE ou ASA et ton champ est bien de type timestamp? mpeppler merci pour le scrip. en executant le même scrip sous ASA nous avons le même resultat. mais le champ t est de type timestamp format special avec 4 octes alors je pense que pour repondre à notre ami il est possible de comparer un Timestanp à une date Code :
|
||
|
|
00
|
|
|
#12 |
![]() ![]() |
D'après le sujet il s'agit d'ASE.
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() |
ok si notre ami est sur ASE ça devrait marché car je me suis mi sur son context ça marche chez moi
jeffk essai merci |
|
|
00
|
|
|
#14 |
![]() ![]() |
Bon, je vais quand même réitérer ce que j'ai dis plus haut...
Il n'y a aucune relation entre le champs "timestamp" et la date/heure courante. Bien sure qu'on peut comparer les champs en faisant des convert(), mais cela ne fait pas vraiment de sens puisque la conversion vers une date du champ timestamp donne une date complétement aléatoire! Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2006 Messages : 15 ![]() |
Bonjour,
en fait c'est plus compliqué et plus simple que cela. D'après mes recheres un timestamp est relatif au dataserveur. Son zéro correspond au premier démarage du dataserveur. Il est donc possible de les comparer entre données du même serveur, mais pas avec des timestamps du dataserveur d'a côté. Maintenant le côté pratique : stocker un timestamp Utilise une colonne de type binary(8) Pour trouver les données insérées, modifiées depuis ton dernier passage : il faut avoir conservé le timestamp de ce moment-là et le comparer aux timestamps présents dans ta table. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com