LIRE DATETIME AVEC MILLISECONDES DANS SQL SERVER

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 20 mars 2010 à 11:27
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 1 avril 2010 à 13:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51467-lire-datetime-avec-millisecondes-dans-sql-server

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 avril 2010 à 13:20
C'était juste une info, sinon je ne fais pas de C# ni aucun autre interprété.

En ODBC par C ou ASM, je donne adresse buffer par SQLBindCol() et je fais remplir par SQLFetchScroll() directement en binaire.
muffin516 Messages postés 2 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 11:53
Question à BruNews pour le commentaire du 31/03/2010 13:51:04 (administrateur CS)

Entièrement d'accord, mais comment faire une comparaison (simple bien sur ) entre deux dates
avec le type datetime.... (sans passer par un découpage 4 octets bas int32 qui représente une date sans minutes et secondes (et à partir de quel jour?) et ensuite comment découper les 4 octets haut pour récupérer heures minutes secondes et millisecondes ???)

je sais que vous avez raison mais je cherchais un moyen simple...
merci quand même d'avoir prêté attention à ce message.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 mars 2010 à 13:51
Un champ datetime sur SqlServer c'est 8 octets.

Tu nous dis:
"dans sql server elle est inscrite sous le format : 2010-01-25 12:20:45.123".

Du grand nimporte quoi tout cela.
Ce sont 2 entiers de 32 bits purement en binaire et donc sans aucun format.
Les 4 octets bas (le 1er INT32) contient la date en OleInt - 2.
Exemple: 31/03/2010 sera stocké en 1 entier valant 40266.
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 mars 2010 à 11:27
Bonjour,

Quand c'est possible stocker la date sous un type datetime et pas varchar/nvarchar (ou char/nchar) sera encore plus simple.
Rejoignez-nous