Maison >base de données >tutoriel mysql >Comment personnaliser le formatage de la date/heure dans SQL Server à l'aide d'une fonction ?

Comment personnaliser le formatage de la date/heure dans SQL Server à l'aide d'une fonction ?

DDD
DDDoriginal
2025-01-04 07:47:341008parcourir

How to Customize Date/Time Formatting in SQL Server Using a Function?

Formatage personnalisé de la date/heure dans SQL Server

Dans le monde de SQL Server, le formatage des dates et des heures pour répondre à des exigences spécifiques peut être un tâche essentielle. Cela est particulièrement vrai lorsqu'il s'agit de données qui doivent être affichées de manière conviviale ou standardisée. Un tel exemple consiste à convertir un champ datetime en deux champs supplémentaires qui adhèrent à des conventions de formatage spécifiques.

Extraction des champs DDMMM et HHMMT

Considérons un champ datetime avec le format 'AAAA-MM-JJ HH:MM:SS.S'. L'objectif est d'extraire de ce champ deux nouveaux champs :

  • DDMMM : Représentant le jour et le mois au format "DDMMM", par exemple "12OCT" pour le 12 octobre.
  • HHMMT : Affichage de l'heure au format "HHMMT", où "T" désigne «A» pour le matin et «P» pour l'après-midi. Par exemple, 13h19 serait représenté par « 0119P ».

Approche basée sur les fonctions

Pour réaliser cette conversion efficacement, exploiter une fonction est recommandé au lieu d’une procédure stockée. Cela permet une plus grande flexibilité et une plus grande réutilisabilité du code.

CREATE FUNCTION FormatDateTime (@DatetimeField DATETIME)
RETURNS VARCHAR(50)
BEGIN
    DECLARE @FormattedValue VARCHAR(50)

    SELECT @FormattedValue = DATENAME(DAY, @DatetimeField) + SUBSTRING(UPPER(DATENAME(MONTH, @DatetimeField)), 0, 4) + ' ' +
                            CASE WHEN DATENAME(HOUR, @DatetimeField) < 12 THEN 'A'
                                 ELSE 'P'
                            END
                            + RIGHT(CAST(DATENAME(HOUR, @DatetimeField) AS VARCHAR), 2)
                            + CAST(DATENAME(MINUTE, @DatetimeField) AS VARCHAR(2))

    RETURN @FormattedValue
END
GO

Démonstration

Pour démontrer la fonctionnalité de la fonction, considérez la requête suivante :

SELECT FormatDateTime(GETDATE())

Cette requête renverrait la date/heure formatée sous la forme "14OCT 0119P", répondant ainsi à la valeur souhaitée. exigences.

Conclusion

En employant une approche basée sur les fonctions et en utilisant la fonction DATENAME, nous avons efficacement réalisé un formatage de date/heure personnalisé dans SQL Server. Cela nous permet d'extraire et de présenter les données dans des formats qui correspondent aux exigences commerciales spécifiques et aux préférences des utilisateurs. De plus, l'utilisation d'opérations numériques pour la manipulation de la date garantit des performances optimales.

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