Filtrage de données de type date en SQL Server
L'exemple ci-dessous filtre les données de type date au format JJ/MM/AAAA, et les reformate au format AAAAMMJJ.
Il est basé sur une expression régulière (syntaxe améliorable), les chaînes vides ou NULL sont transformées en la borne inférieure (ici 1er Janvier 1900).
Remarque : il s'agit d'un cas simpliste à adapter au cas concret.
SQL :
Create table _test(Data Varchar(100))
Insert Into _test
VALUES ('XXXXXXXXXX')
, ('123456789')
, ('15/06/2016')
, ('13/02/2015')
, ('')
, (NULL)
Select CASE WHEN Data = '' OR Isnull(Data, '1') = '1' THEN '19000101'
Else Substring(DATA, 7, 4) + Substring(DATA, 4, 2) + Substring(DATA, 1, 2)
END As NewDate
From _test
Where DATA like '[0-9][0-9][-/][0-9][0-9][-/][0-9][0-9][0-9][0-9]'
OR DATA = ''
OR DATA IS Null
No comments:
Post a Comment