Heim >Datenbank >MySQL-Tutorial >Wie kann ich Datum und Uhrzeit in SQL Server benutzerdefiniert formatieren, um TDMMM und HHMMT anzuzeigen?

Wie kann ich Datum und Uhrzeit in SQL Server benutzerdefiniert formatieren, um TDMMM und HHMMT anzuzeigen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 20:26:16168Durchsuche

How Can I Custom Format Date and Time in SQL Server to Display DDMMM and HHMMT?

Benutzerdefinierte Datums-/Uhrzeitformatierung in SQL Server

Das Anpassen des Anzeigeformats von Datums- und Uhrzeitangaben in SQL Server ist für die benutzerfreundliche Darstellung von Daten von entscheidender Bedeutung. Dieser Artikel bietet eine umfassende Lösung für die Herausforderung, Datums- und Uhrzeitangaben in einem bestimmten Format zu formatieren, wie in der ursprünglichen Frage beschrieben.

Problemstellung:

Die Aufgabe Bei der vorliegenden Aufgabe werden zwei zusätzliche Spalten aus dem Datetime-Feld einer vorhandenen Tabelle extrahiert. Diese Spalten sollten wie folgt formatiert sein:

  1. TDMMM: Stellen Sie den Tag und den Monat in einer Kurzschreibweise dar, z. B. „12OCT“ für den 12. Oktober.
  2. HHMMT: Zeigt die Uhrzeit in Stunden und Minuten mit einer AM/PM-Anzeige an. z. B. „0119P“ für 13:19 Uhr.

Lösung mit Funktionen:

Anstelle einer gespeicherten Prozedur wird empfohlen, eine Funktion zu verwenden um die Logik für diese Datumsformatierung zu umschließen. Hier ist der Code:

CREATE FUNCTION [dbo].[CustomDateFormat](
    @DateTime DATETIME
)
RETURNS VARCHAR(10)
AS
BEGIN
    DECLARE @Day VARCHAR(2) = SUBSTRING(DATENAME(DAY, @DateTime), 1, 2)
    DECLARE @Month VARCHAR(3) = SUBSTRING(UPPER(DATENAME(MONTH, @DateTime)), 1, 3)
    
    RETURN @Day + @Month
END

Diese Funktion extrahiert die Tages- ('DD') und Monatsteile ('MMM') des eingegebenen Datetime-Werts und gibt sie verkettet zurück.

Zugriff auf Daten in dynamischem SQL:

Um mit der Funktion auf die Daten zuzugreifen, erstellen Sie ein dynamisches SQL Abfrage:

DECLARE @SQLCommand VARCHAR(MAX) = '
    SELECT
        ...,
        dbo.CustomDateFormat(DateTimeField) AS DDMMM,
        ...
' 
EXEC (@SQLCommand)

Optimierungstipp:

Um Leistungseinbußen durch Datentypkonvertierungen zu vermeiden, vermeiden Sie nach Möglichkeit die Verwendung von Zeichen-/Zeichenfolgenoperationen für Datumsangaben. Datumsangaben werden in MSSQL als Gleitkommazahlen dargestellt und Konvertierungen in/von Zeichenfolgen können die Leistung verlangsamen.

Zusätzliche Ressourcen:

Zur weiteren Referenz finden Sie hier einige zusätzliche Hilfsfunktionen für die Arbeit mit Datums- und Uhrzeitangaben in SQL Server:

  • Abrufen von Teilen von a DateTime
  • Relative Daten

Das obige ist der detaillierte Inhalt vonWie kann ich Datum und Uhrzeit in SQL Server benutzerdefiniert formatieren, um TDMMM und HHMMT anzuzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn