Everything will depend on the format of your date. With format 101 you are specifying that the format is mm/dd/aaaa
. The code below returns the date 21/06/2017
:
DECLARE @data varchar(10) = '06/21/2017';
SELECT CONVERT(DATETIME, @data, 101);
If you are using the Brazilian format you should use code 103 for the conversion:
DECLARE @data varchar(10) = '21/06/2017';
SELECT CONVERT(DATETIME, @data, 103);
You can not do an update directly on your view
, so you should change the definition of it to something like below:
ALTER VIEW temp_vertical_dashboard AS (
SELECT CONVERT(DATETIME, t.data, 101) AS data
FROM tabela t
)
In the CAST and CONVERT (Transact-SQL) documentation -time and time styles check the codes for date conversions.
Available translations:
╔═════════════════╦═══════════════════╦═══════════════════════════════════╦════════════════════════════════════════╗
║ Sem século (AA) ║ Com século (aaaa) ║ Standard ║ Entrada/saída (3) ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 0 ou 100 (1,2) ║ Padrão para datetime e ║ mês dd aaaa hh:miAM (ou PM) ║
║ ║ ║ smalldatetime ║ ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 1 ║ 101 ║ EUA ║ 1 = mm/dd/aa ║
║ ║ ║ ║ 101 = mm/dd/aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 3 ║ 103 ║ Britânico/francês ║ 3 = dd/mm/aa ║
║ ║ ║ ║ 103 = dd/mm/aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 4 ║ 104 ║ Alemão ║ 4 = dd.mm.aa ║
║ ║ ║ ║ 104 = dd.mm.aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 5 ║ 105 ║ Italiano ║ 5 = dd-mm-aa ║
║ ║ ║ ║ 105 = dd-mm-aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 6 ║ 106 (1) ║ - ║ 6 = dd mês aa ║
║ ║ ║ ║ 106 = dd mês aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 7 ║ 107 (1) ║ - ║ 7 = Mês dd, aa ║
║ ║ ║ ║ 107 = Mês dd, aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 8 ║ 108 ║ - ║ hh:mi:ss ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 9 ou 109 ║ Padrão + milissegundos ║ mês dd aaaa hh:mi:ss:mmmAM (ou PM) ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 10 ║ 110 ║ EUA ║ 10 = mm-dd-aa ║
║ ║ ║ ║ 110 = mm-dd-aaaa ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 11 ║ 111 ║ JAPÃO ║ 11 = aa/mm/dd ║
║ ║ ║ ║ 111 = aaaa/mm/dd ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 12 ║ 112 ║ ISO ║ 12 = aammdd ║
║ ║ ║ ║ 112 = aaaammdd ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 13 ou 113 ║ Padrão Europa + milissegundos ║ dd mês aaaa hh:mi:ss:mmm (24h) ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ 14 ║ 114 ║ - ║ hh:mi:ss:mmm(24h) ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 20 or 120 (2) ║ ODBC canônico ║ aaaa-mm-dd hh:mi:ss(24h) ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 21 or 121 (2) ║ ODBC canônico (com milissegundos) ║ aaaa-mm-dd hh:mi:ss(24h) ║
║ ║ ║ padrão para hora, data, datetime2 ║ ║
║ ║ ║ e datetimeoffset ║ ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 126 (4) ║ ISO8601 ║ aaaa-mm-ddThh:mi:ss.mmm (sem espaços) ║
║ ║ ║ ║ ║
║ ║ ║ ║ Observação: Quando o valor de ║
║ ║ ║ ║ milissegundos (mmm) for 0, o valor de ║
║ ║ ║ ║ milissegundos não é exibido. Por ║
║ ║ ║ ║ exemplo, o valor ║
║ ║ ║ ║ '2012-11-07T18:26:20.000' é exibido ║
║ ║ ║ ║ como '2012-11-07T18:26:20'. ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 127(6, 7) ║ ISO8601 com fuso horário Z. ║ aaaa-mm-ddThh:mi:ss.mmmZ (sem espaços) ║
║ ║ ║ ║ ║
║ ║ ║ ║ Observação: Quando o valor de ║
║ ║ ║ ║ milissegundos (mmm) for 0, o valor de ║
║ ║ ║ ║ milissegundos não é exibido. Por ║
║ ║ ║ ║ exemplo, o valor ║
║ ║ ║ ║ '2012-11-07T18:26:20.000' é exibido ║
║ ║ ║ ║ como '2012-11-07T18:26:20'. ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 130 (1, 2) ║ Hijri (5) ║ dd mmm aaaa hh:mi:ss:mmmAM ║
║ ║ ║ ║ ║
║ ║ ║ ║ Neste estilo, mon representa uma ║
║ ║ ║ ║ representação unicode Hijri de vários ║
║ ║ ║ ║ tokens do nome completo do mês. Este ║
║ ║ ║ ║ valor não será renderizado corretamente║
║ ║ ║ ║ em uma instalação US padrão do SSMS. ║
╠═════════════════╬═══════════════════╬═══════════════════════════════════╬════════════════════════════════════════╣
║ - ║ 131 (2) ║ Hijri (5) ║ dd/mm/aaaa hh:mi:ss:mmmAM ║
╚═════════════════╩═══════════════════╩═══════════════════════════════════╩════════════════════════════════════════╝
- (1) these style values return non-deterministic results. They include all styles (aa) (without century) and a subset of styles (aaaa) (with century).
- (2) Standard values (style0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).
- (3) input when you convert to datetime; output when you convert character data.
- (4) designed for use with XML. For conversion of datetime or smalldatetime character data of output format is as described in the previous table.
- (5) Hijri is a calendar system with many variations. SQL Server uses the Kuwaiti algorithm.