Types de données de date de base dans SQL
Comment les dates sont-elles stockées dans le serveur SQL?
Dans le serveur SQL, les dates sont stockées à l'aide de deux entiers de 4 octets. L'entier initial correspond au nombre de jours précédant ou succédant à la date de base du 1er janvier 1900. Le deuxième entier correspond au nombre de 1/300e de seconde qui s'est écoulé depuis minuit. Par exemple, la date de «1er janvier 2000 12h00» est stockée comme les deux entiers - 36 529 (le nombre de jours entre le 1er janvier 1900 et le 1er janvier 2000) et 43 200 000 (le nombre de 1/300e d'une seconde depuis minuit).
Le serveur SQL fournit également un certain nombre de fonctions intégrées pour travailler avec des dates, telles que DataEadd, Datediff et Convert, qui nous permettent d'effectuer les opérations communes telles que l'ajout ou la soustraction des intervalles de temps, la comparaison des dates et la mise en forme du Rendez-vous.
Pour effectuer les requêtes SQL sur une base de données, nous utilisons généralement un outil tel que le SQL Server Management Studio (SSMS).
Création d'un [DBO].[Ordres] Tableau
Pour créer une table dans notre base de données, nous devons écrire les requêtes suivantes:
Créer une table [dbo].[ORDRES] (
[ord_number] int not null
,[ORD_DATETime] DateTime Null
,[ORD_DATE] Date nul
,[deli_datetime] DateTime null
,[last_visit_date] date nul
)
Insertion des données dans le [DBO].[Ordres] Tableau
Insérez les valeurs du tableau à l'aide de la commande suivante:
Insérer dans [dbo].[ORDERS] ([ORD_NUMBER], [ORD_DATETIME], [ORD_DATE], [Deli_DateTime], [Last_Visit_Date])
VALEURS
('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 (date, current_timestamp), dataeadd (day, 5, current_timestamp), dataeadd (mois, 5, current_timestamp)))
Conversion d'une date en chaîne
Si nous ramenons les valeurs DateTime du tableau, les résultats seront affichés comme «2021-10-01 10:30:00.000 ”. Mais si nous aimons le convertir en une chaîne dans notre propre format dans le code SQL, nous pouvons le faire en utilisant la fonction suivante:
SÉLECTIONNER
[ord_datetime]
,Convert (varchar (20), [ord_datetime], 22) 'order_date_string'
DEPUIS
[dbo].[ORDRES]
Sortir:
ord_datetime order_date_string
2021-10-01 10:30:00.000 10/01/21 10:30:00 AM
2021-10-01 12:45:00.000 10/01/21 12:45:00 PM
2021-10-30 13:25:00.000 10/30/21 13:25:00
Trouver une date spécifique en utilisant la clause où
Pour trouver les commandes où la date de commande est le 1er décembre 2021, nous devons suivre la requête suivante:
SÉLECTIONNER
[ORD_NUMBER]
,[ORD_DATE]
DEPUIS
[dbo].[ORDRES]
OÙ
[ord_date] = '01 / 10/2021 '
Sortir:
ORD_NUMBER ORD_DATE
5 2021-01-10
5 2021-01-10
Séparer la date de l'heure
Nous pouvons également utiliser la fonction de converti à une date pour récupérer uniquement la valeur de date en spécifiant un style. Pour cela, nous utilisons la requête suivante:
Déclarer @dd en tant que DateTime
Définir @dd = '2011-07-03 20:30:40'
Sélectionnez Convert (Varchar, @dd, 103)
Sortir:
(Pas de nom de colonne)
1 03/07/2011
Obtenir la date et l'heure actuelles
Voici un exemple de requête SQL qui récupère la date et l'heure actuelles à l'aide des fonctions GetDate et Current_timestamp:
SÉLECTIONNERSortir:
(Pas de nom de colonne) (pas de nom de colonne)Trouver la différence entre deux dates
Il est souvent utile de trouver la différence entre deux dates. Avec cela, nous pouvons faire des choses comme trouver le nombre de jours entre la commande et une date de livraison.
Voici un exemple:
SÉLECTIONNERSortir:
ord_date deli_datetime del_daysConclusion
Nous avons appris à manipuler les dates, les temps et les chaînes en utilisant les fonctions intégrées. Ces fonctions sont très pratiques pour effectuer des calculs et des transformations sur les données stockées dans les tables SQL Server. En comprenant et en utilisant ces types de données et ces fonctions efficacement, nous pouvons écrire des requêtes SQL plus efficaces et plus puissantes.