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
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
Salut !
Peux tu donner plus de précisions sur cette colonne "timestamp" s'il te plait.
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
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
![]()
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...
Dommage... si quelqu'un a une idée sur un moyen de comparer un Timestanp à une date , je suis preneur
Merci
Tu pourrais créer une colonne de type Datetime qui serait mise à jour par un trigger...
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
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
bonjour
notre ami jeffk n'a pas precisé la version de sybase qu'il utiliseEnvoyé par mpeppler
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
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:
Michael
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 [26] PEPM.testdb.1> select @@version; --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Adaptive Server Enterprise/12.5.4/EBF 13388/P/Linux Intel/Enterprise Linux/ase1254/2006/32-bit/OPT/Fri May 19 23:17:01 2006 (1 row affected) [27] PEPM.testdb.1> create table tstamp(id int, t timestamp); [29] PEPM.testdb.1> insert tstamp(id) values(1); (1 row affected) [30] PEPM.testdb.1> select * from tstamp; id t ----------- -------------------- 1 0x00000000004122a3 (1 row affected) [31] PEPM.testdb.1> select getdate(), convert(datetime, t) from tstamp; ------------------- ------------------- Jul 10 2006 10:11AM Jan 1 1900 5:36PM (1 row affected)
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
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 insert tstamp(id) values(1); select * from tstamp; select getdate(), convert(datetime, t) from tstamp; select * from tstamp where left(t,10)='2006-07-10'
Partager