Lorsque vous stockez une valeur DateTime dans SQL Server 2008, à l'aide du type DateTime, quel format stockera-t-il la valeur dans? p>
Est-ce le nombre de secondes depuis 1970 (ou autre)? P>
sur le côté de l'application (.NET), je passe dans un objet DateTime. P>
Quand j'appuie les lignes de la table dans l'analyseur de requête, le formatera-t-il en fonction de mes paramètres de culture ou je vis exactement ce qui est stocké dans la DB? P>
4 Réponses :
Il est stocké comme un point flottant représentant des jours depuis le 1er janvier 1900. Si vous l'arrondiez en la jumelant à un int, qui ne laisse que la partie de date:
select getdate() + 0.5 --> 2011-07-12 11:22:09.927
+1 Ils peuvent être traités comme des points flottants et manipulés dans SQL comme s'ils étaient, mais quand ils sont écrits sur le disque, ils sont INTS.
Ils sont stockés comme 2 intens, voir mon message ici blogs.lessshandot.com/index.php/datamgmt/datadesign/...
interne, selon Sqldenis, Lorsque vous les voyez dans l'analyseur de requêtes, vous voyez des chiffres évalués. P>
Il est
http: //blogs.lessshandot .com / index.php / datamgmt / datadesign / comment-sont-dates-stockés-in-sql-serveur p>
http://fr.wikipedia.org/wiki/unix_time p>
+1 Je me suis toujours demandé s'ils étaient un point flottant, ce que l'exposant a été utilisé et si la précision diminuerait davantage dans le futur :) Merci d'avoir effacé cela.
Correct, content que la poste que j'ai écrite pourrait aider quelqu'un :-)
@Sqlmenace Avez-vous une notification lorsque les références sont-elles disponibles ou avez-vous simplement eu la question de lire cette question? :RÉ
Je suis arrivé dans les référeuses par hasard :-)
@Matthew Que voulez-vous dire que je vois des chiffres évalués?
@Codecompletage Je veux dire que, lorsqu'il est demandé, l'analyseur de DB Motch & Query est en train de transformer son type de données de base (entiers) dans la date affichée à laquelle vous voyez.
@Sqlmenace Puis-je prendre le saut logique pour penser que la date SQL2008 DATE CODE> utilise uniquement un seul int alors?
DateTime doj = new DateTime(); System.Globalization.CultureInfo c1=new System.Globalization.CultureInfo("en-GB",true); doj = DateTime.Parse(Txtdoj.Text.Trim(), c1, System.Globalization.DateTimeStyles.NoCurrentDateDefault); use ..ituse query to display the date time select convert (varchar(max),doj,103)as doj from tbl_registration
Voici le code pour afficher comment il est stocké:
fulldate internal days ticks ----------------------- ------------------ ----------- ----------- 2016-11-07 10:54:13.080 0x0000A6B700B3AFB4 42679 11775924
Pourquoi le bowvote? J'aime m'améliorer, mais j'ai besoin de savoir quelle partie de cette réponse que vous ressentez est incorrecte.
Pas une réponse mais un conseil général. Concertez comme binaire aidera à diagnostiquer des curiosités comme celle-ci et d'autres (Unicode). Sélectionner la distribution (getDate () comme binaire);