Thursday, May 19, 2016



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