So formatieren Sie Datum und Uhrzeit im SQL -Server

So formatieren Sie Datum und Uhrzeit im SQL -Server
Die Manipulation der Datums- und Uhrzeitwerte mithilfe der Datentypen von DateTime, Datum und Zeit ist eine der wichtigsten Funktionen von SQL, da diese Datentypen speziell so konzipiert sind, dass solche Werte gespeichert werden. Sie werden häufig in Anwendungen verwendet, die die Berechnung und Manipulation der Datums- und Uhrzeitdaten erfordern. In diesem Artikel werden wir uns tiefer in diese Datentypen befassen.

Grundlegende Datumsdatentypen in SQL

  • DATUM: Dieser Datentyp wird verwendet, um die Datumswerte im YYYY-MM-DD-Format zu speichern. Es ist in der Lage, die Daten innerhalb des Bereichs des 1. Januar 0001 bis 31. Dezember 9999 darzustellen. Die Datumswerte werden in einem kompakten Format unter Verwendung von nur drei Bytes gespeichert.
  • ZEIT: Der Zeitdatentyp wird verwendet, um die Zeitwerte im Format HH: MI: SS zu speichern. Es kann die Zeitwerte im Bereich von 00:00:00 bis 23:59:59 darstellen.
  • TERMINZEIT: Der Datentyp der DateTime-Datentyp kann sowohl Datums- als auch Zeitwerte im YYYY-MM-DD HH: MI: SS-Format speichern. Es ermöglicht die Werte im Bereich des 1. Januar 1753, 00:00:00 bis 31. Dezember, 9999, 23:59:59, um gespeichert zu werden. Dieser Datentyp ist nützlich, um die Zeitstempel wie Transaktionszeiten oder Ereigniszeiten zu speichern.
  • Smalldatetime: Dieser Datentyp entspricht dem Datentyp von DateTime, jedoch mit geringem Unterschied. Es speichert sowohl Datums- als auch Zeitwerte, jedoch mit einem kleineren Wertebereich vom 1. Januar 1900, 00:00:00 bis 6. Juni 2079, 23:59:59 Uhr. Die Werte werden auch auf die nächste Minute gerundet, was Platz spart und die Verarbeitungszeit verkürzt. Dieser Datentyp ist nützlich, um zeitempfindliche Informationen zu speichern, für die keine hohe Genauigkeit erforderlich ist. Es dauert nur 4 Bytes Daten. Es wird im YYYY-MM-DD HH: MM: SS-Format gespeichert.
  • DateTime2: Dieser Datentyp ähnelt dem Datentyp von DateTime, jedoch mit höherer Genauigkeit und einem größeren Bereich. Der Wertebereich entspricht der DateTime, kann jedoch die fraktionalen Sekunden bis zu 7 Ziffern speichern.

Wie werden Daten auf dem SQL -Server gespeichert??

Innerhalb des SQL-Servers werden Daten mit zwei 4-Byte-Ganzzahlen gespeichert. Die anfängliche Ganzzahl entspricht der Anzahl der Tage vor oder erfolgreich das Basisdatum des 1. Januar 1900. Die zweite Ganzzahl entspricht der Anzahl von 1/300. Sekunden, die seit Mitternacht verstrichen ist. Zum Beispiel wird der Datum „1. Januar 2000 12:00:00 Uhr“ als die beiden Ganzzahlen aufbewahrt - 36.529 (die Anzahl der Tage zwischen dem 1. Januar 1900 und 1. Januar 2000) und 43.200.000 (die Anzahl der 1/300. von einer Sekunde seit Mitternacht).

Der SQL-Server bietet auch eine Reihe integrierter Funktionen für die Arbeit mit Daten wie DATEADD, DATEIL und CONVERT. Termine.

Um die SQL -Abfragen in einer Datenbank durchzuführen, verwenden wir normalerweise ein Tool wie das SQL Server Management Studio (SSMS).

Erstellen eines [DBO].[Bestellungen] Tabelle

Um eine Tabelle in unserer Datenbank zu erstellen, müssen wir die folgenden Abfragen schreiben:

Tabelle erstellen [DBO].[AUFTRÄGE] (
[ord_number] int nicht null
,[ord_datetime] datetime null
,[ord_date] Datum null
,[deli_datetime] datetime null
,[last_vissit_date] Datum null
)

Einfügen der Daten in die [DBO].[Bestellungen] Tabelle

Fügen Sie die Werte in der Tabelle mit dem folgenden Befehl ein:

In [DBO] einfügen.[Bestellungen] ([ord_number], [ord_datetime], [ord_date], [deli_datetime], [last_vissit_date]))
WERTE
('1', '2021-10-01 10:30:00', '2021-10-01', '2021-10-12 10:11:10', '2021-11-01'),
('2', '2021-10-01 12:45:00', '2021-10-01', '2021-10-10 14:10:11', '2021-10-15'),
('3', '2021-10-30 13:25:00', '2021-10-30', '2021-11-05 13:22:12', '2021-12-30'),
('4', '2021-09-22 16:30:00', '2021-09-22', '2021-09-25 14:12:13', '2021-12-22'),
('5', '2021-01-10 18:15:00', '2021-01-10', '2021-02-01 11:15:14', '2022-01-10'),
('6', current_timestamp, convert (Datum, current_timestamp), datadd (tag, 5, current_timestamp), dataDD (Monat, 5, current_timestamp))

Konvertieren eines Datums in Zeichenfolge

Wenn wir die DateTime-Werte aus der Tabelle zurückbringen, werden die Ergebnisse als „2021-10-01 10:30:00.000 ". Wenn wir es jedoch in eine Zeichenfolge in unserem eigenen Format im SQL -Code konvertieren möchten, können wir dies mit der folgenden Funktion tun:

WÄHLEN
[ord_datetime]
,Konvertieren (varchar (20), [ord_datetime], 22) 'order_date_string' '
AUS
[DBO].[AUFTRÄGE]

Ausgang:

ord_datetime order_date_string
2021-10-01 10:30:00.000 10/01/21 10:30:00 Uhr
2021-10-01 12:45:00.000 10/01/21 12:45:00 Uhr
2021-10-30 13:25:00.000 10/30/21 13:25:00 Uhr

Finden eines bestimmten Datums mit der WHERE -Klausel

Um die Bestellungen zu finden, an denen das Bestelldatum am 1. Dezember 2021 ist, müssen wir der folgenden Anfrage folgen:

WÄHLEN
[ord_number]
,[ord_date]
AUS
[DBO].[AUFTRÄGE]
WO
[ord_date] = '01/10/2021 '

Ausgang:

ord_number ord_date
5 2021-01-10
5 2021-01-10

Das Datum von der Zeit trennen

Wir können die Konvertierungsfunktion auch an einem Datum verwenden, um nur den Datumswert abzurufen, indem wir einen Stil angeben. Dafür verwenden wir die folgende Abfrage:

Deklarieren Sie @DD als datetime
Set @dd = '2011-07-03 20:30:40'
Wählen Sie Convert (varchar, @dd, 103)

Ausgang:

(Kein Spaltenname)
1 03/07/2011

Das aktuelle Datum und die aktuelle Uhrzeit erhalten

Hier ist ein Beispiel für eine SQL -Abfrage, die das aktuelle Datum und die aktuelle Uhrzeit mit den Funktionen getDate und current_timestamp abruft:

WÄHLEN
VERABREDUNG BEKOMMEN()
,AKTUELLER ZEITSTEMPEL

Ausgang:

(Kein Spaltenname) (kein Spaltenname)
1 2023-03-04 23:44:02.883 2023-03-04 23:44:02.883

Den Unterschied zwischen zwei Daten finden

Es ist oft hilfreich, den Unterschied zwischen zwei Daten zu finden. Damit können wir Dinge wie die Anzahl der Tage zwischen der Bestellung und einem Liefertermin tun.

Hier ist ein Beispiel:

WÄHLEN
[ord_date]
,[deli_datetime]
,Datiff (tag, [ord_date], [deli_datetime]) 'del_days' '
AUS
[DBO].[AUFTRÄGE]

Ausgang:

ord_date deli_datetime del_days
1 2021-10-01 2021-10-12 10:11:10.000 11
2 2021-10-01 2021-10-10 14:10:11.000 9
3 2021-10-30 2021-11-05 13:22:12.000 6

Abschluss

Wir haben gelernt, wie man die Daten, Zeiten und Saiten mit den integrierten Funktionen manipuliert. Diese Funktionen sind sehr praktisch, um Berechnungen und Transformationen für die in den SQL Server -Tabellen gespeicherten Daten durchzuführen. Durch das Verständnis und die Verwendung dieser Datentypen und Funktionen effektiv können wir effizientere und leistungsfähigere SQL -Abfragen schreiben.