web-dev-qa-db-fra.com

Format de date SQL Server aaaammjj

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

6
Kevin M

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
17
John Cappelletti
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

5
Daniel

essaye ça....

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees;
2
Ankitkumar Tandel

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.

1
Gordon Linoff
Select CONVERT(VARCHAR(8), GETDATE(), 112)

Testé dans SQL Server 2012

https://www.w3schools.com/sql/func_sqlserver_convert.asp

0
rchacko