J'ai une colonne varchar
où certaines valeurs sont au format mm/dd/yyyy
et d'autres au format yyyymmdd
.
Je veux convertir toutes les dates mm/dd/yyyy
au format yyyymmdd
. Quelle est la meilleure façon de procéder? Merci
La table est Employees
et la colonne est DOB
En supposant que votre colonne "date" ne soit pas réellement une date.
Select convert(varchar(8),cast('12/24/2016' as date),112)
ou
Select format(cast('12/24/2016' as date),'yyyyMMdd')
Résultats
20161224
DECLARE @v DATE= '3/15/2013'
SELECT CONVERT(VARCHAR(10), @v, 112)
vous pouvez convertir n'importe quel format de date ou de format de date/heure en AAAAMMJJ sans délimiteur
essaye ça....
SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees;
Dans SQL Server, vous pouvez faire:
select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col)
Ceci tente la conversion en conservant la valeur précédente si disponible.
Remarque: j'espère que vous avez appris une leçon sur l'enregistrement des dates en tant que dates et non en chaînes.
Select CONVERT(VARCHAR(8), GETDATE(), 112)
Testé dans SQL Server 2012