Maison > base de données > tutoriel mysql > Comment personnaliser le format DateTime dans SQL Server en « DDMMM » et « HHMMT » ?

Comment personnaliser le format DateTime dans SQL Server en « DDMMM » et « HHMMT » ?

Patricia Arquette
Libérer: 2025-01-01 14:58:11
original
914 Les gens l'ont consulté

How to Custom Format DateTime in SQL Server to 'DDMMM' and 'HHMMT'?

Formatage personnalisé de la date/heure dans SQL Server

Objectif : Formater un champ Datetime en deux colonnes supplémentaires : ' DDMMM' et 'HHMMT' (où 'T' représente 'A' pour matin et 'P' pour pm).

Scénario : Étant donné un champ Datetime au format 'AAAA-MM-JJ HH:MM:SS.S', la sortie souhaitée est :

  • '12OCT' pour la colonne 'DDMMM'
  • '0119P' pour le Colonne 'HHMMT'

Solution :

Au lieu d'utiliser une procédure stockée, envisagez d'utiliser une fonction pour encapsuler le logique.

DECLARE @myTime AS DATETIME;

SET @myTime = GETDATE();

SELECT @myTime AS OriginalTime;

SELECT DATENAME(DAY, @myTime) + SUBSTRING(UPPER(DATENAME(MONTH, @myTime)), 0, 4) AS 'DDMMM';
Copier après la connexion

Sortie :

OriginalTime          DDMMM
---------------------- --------------------
2023-03-08 13:19:12.0 08MAR
Copier après la connexion

Remarque :

  • Utiliser des combinaisons de chaînes entre guillemets ('') pour concaténer plusieurs chaînes dans le résultat.
  • Évitez les opérations de caractère/chaîne sur Datetime types de données car ils peuvent avoir un impact sur les performances.

Conseil supplémentaire :

Référencez les fonctions de conversion de date utiles pour divers scénarios :

-- Getting Parts of a DateTime
SELECT FLOOR(CAST(GETDATE() AS FLOAT)) AS DateOnly, GETDATE() - FLOOR(CAST(GETDATE() AS FLOAT)) AS TimeOnly;

-- Relative Dates
SELECT GETDATE() AS CurrentTime, DATEADD(dd, 1, GETDATE()) AS Tomorrow;
SELECT GETDATE() AS CurrentTime, DATEADD(hh, 1, GETDATE()) AS InOneHour;

-- Yearly
SELECT DATEADD(yy, -1, GETDATE()) AS LastYear, DATEADD(yy, 1, GETDATE()) AS NextYear;
SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0) AS CurrentYearStart, DATEADD(ms, -4, DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) + 1, 0)) AS CurrentYearEnd;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal