risposta-alla-domanda-sullo-sviluppo-web-bd.com

Formato data di SQL Server yyyymmdd

Ho una colonna varchar dove alcuni valori sono in formato mm/dd/yyyy e alcuni sono in yyyymmdd

Voglio convertire tutte le date mm/dd/yyyy nel formato yyyymmdd. Qual è il modo migliore per farlo? Grazie

La tabella è Employees e la colonna è DOB

6
Kevin M

Supponendo che la colonna "data" non sia effettivamente una data.

Select convert(varchar(8),cast('12/24/2016' as date),112)

Select format(cast('12/24/2016' as date),'yyyyMMdd')

Ritorna

20161224
17
John Cappelletti
DECLARE @v DATE= '3/15/2013'

SELECT CONVERT(VARCHAR(10), @v, 112)

puoi convertire qualsiasi formato data o formato data ora in AAAAMMGG senza delimitatori

5
Daniel

prova questo....

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

In SQL Server, puoi fare:

select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col)

Questo tenta la conversione, mantenendo il valore precedente se disponibile.

Nota: spero che tu abbia imparato una lezione sull'archiviazione delle date come date e non come stringhe.

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

Testato in SQL Server 2012

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

0
rchacko