Lire datetime avec millisecondes dans sql server

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 197 fois - Téléchargée 16 fois

Contenu du snippet

Comment récupérer une date dans une base sql sever express 2008
dans un champ 'DateTime' avec les millisecondes:

Source / Exemple :


/*Comment récupérer une date dans une base sql sever express 2008
dans un champ 'DateTime' avec les millisecondes:

25-01-2010 12:20:45.123    ca c'est la date qu'on veut récupérer.

dans sql server elle est inscrite sous le format : 2010-01-25 12:20:45.123

(pas de probleme si la base est au format 'fr'  dasns sql server )

PAR EXEMPLE : 
on veut dans un datagrid selectionner une ligne pour la supprimer
on a choisi comme identifiant unique au moment de l'insertion
de la ligne de mettre dans le champ 'LaDate': Datetime.Now();

maintenant si on veut supprimer cette ligne on veut récupérer
cette date ...

donc code c# :*/

DateTime st =Convert.ToDateTime( TheDataSet.Tables["TheTable"].Rows[dataGrid1.SelectedIndex]["LaDate"],new System.Globalization.CultureInfo("fr-FR", true));
String TheDate = st.ToString("dd-MM-yyyy HH:mm:ss.fff");            

MessageBox.Show(TheDate );// on a bien les millisecondes
//car si on fait:
MessageBox.Show( TheDataSet.Tables["TheTable"].Rows[dataGrid1.SelectedIndex]["LaDate"].ToString());
//Nada !!

string sqldelete = "delete from TheTable where  LaDate = convert(char(23),'" + TheDate +"' ,113)";
MessageBox.Show(sqldelete );
//et hop ya plu ka sql command... et execute nonquery...
//j'ai cherché longtemps j'éspère que ca rendra service....

A voir également

Ajouter un commentaire

Commentaires

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
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.
Messages postés
2
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
1 avril 2010

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.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
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.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Bonjour,

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.