Maison >base de données >tutoriel mysql >Comment puis-je stocker en toute sécurité les dates JJ-MM-AAAA dans le type de données DATETIME de SQL Server ?

Comment puis-je stocker en toute sécurité les dates JJ-MM-AAAA dans le type de données DATETIME de SQL Server ?

DDD
DDDoriginal
2024-12-30 20:02:17357parcourir

How Can I Safely Store DD-MM-YYYY Dates in SQL Server's DATETIME Datatype?

Conversion du format de date SQL Server : DATETIME en JJ-MM-AAAA

Dans SQL Server, lors de la récupération des valeurs de date dans le JJ-MM -format AAAA, les utilisateurs rencontrent souvent le besoin de stocker ces valeurs dans un type de données DATETIME tout en préservant le même format. Cette question explore une solution à cette exigence.

La requête fournie, SELECT CONVERT(VARCHAR(10), GETDATE(), 105), convertit avec succès la date actuelle au format JJ-MM-AAAA souhaité dans un Type de données VARCHAR. Cependant, stocker cette valeur dans un type de données DATETIME nécessite une approche différente.

Dans SQL Server, les valeurs DATETIME sont stockées sous forme de 2 entiers de 4 octets, ce qui les rend intrinsèquement non formatées. Pour afficher ou récupérer des dates dans des formats spécifiques, il faut les convertir en un type de données VARCHAR à l'aide de l'identifiant de format approprié.

Pour obtenir le format souhaité dans un type de données DATETIME, considérez ce qui suit :

  • Assurez-vous que la date est formatée en toute sécurité avant de l'insérer. JJ-MM-AAAA n'est pas un format universellement sûr car il peut être interprété comme MM-JJ-AAAA dans certains paramètres.
  • Utilisez des formats sûrs tels que aaaaMMjj ou aaaa-MM-jjThh:mi:ss.mmm .
  • Par exemple, pour insérer une date au format jj/MM/aaaa en toute sécurité :

    INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
  • Utilisez plutôt un format sécurisé :

    INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe

Veuillez noter que lors de la sélection des champs DATETIME, SSMS affiche les valeurs formatées pour plus de commodité. La représentation interne réelle est un entier de 8 octets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn