Ma recommandation serait:
Ajouter une colonne de type DATE
à votre table:
ALTER TABLE dbo.YourTable ADD NewDateColumn DATE
Mettez à jour votre table pour convertir ces varchar
valeurs à DATE
:
UPDATE dbo.YourTable
SET NewDateColumn = CAST(YourOldColumn AS DATE)
WHERE NewDateColumn IS NULL AND ISDATE(YourOldColumn) = 1
Drop that ancienne colonne:
ALTER TABLE dbo.YourTable DROP COLUMN YourOldColumn
A partir de maintenant - utiliser la nouvelle colonne DATE
exclusivement.
Vous pouvez formater à une représentation de chaîne qui est supported in SQL Server using the CONVERT
function
Une fois que vous avez cette DATE
colonne, vous pouvez produire dans toute chaîne de mise en forme dont vous avez besoin:
SELECT
CONVERT(VARCHAR(20), GETDATE(), 101) 'US format',
CONVERT(VARCHAR(20), GETDATE(), 102) 'ANSI format',
CONVERT(VARCHAR(20), GETDATE(), 104) 'German format'
vous donne:
US format ANSI format German format
12/29/2011 2011.12.29 29.12.2011
Quel ** type de données ** est cette colonne ?? Les dates ne sont pas stockées sous forme de chaînes dans SQL Server - elles ne sont associées à aucun ** format **, c'est-à-dire, ** SI ** vous utilisez les types de données appropriés ('DATE' ou' DATETIME') –
+1 @marc_s - le formatage n'a rien à voir avec le stockage. – Oded
la colonne est varchar mais j'ai rendez-vous dedans – kinkajou