Convert DATA dd / mm / yyyy hh: mm: ss to yyyy / mm / dd

8

I have a date in the following format 14/12/2015 00:00:00 and need to convert to 2015-12-14 how can I do this in SQL ?

    
asked by anonymous 15.12.2015 / 14:04

6 answers

6

Do this little padawan:

CONVERT (VARCHAR, CONVERT(DATETIME, dataSistema, 103), 102) AS novaData

Example: link

In documentation has some examples and explanations about the CONVERT

    
15.12.2015 / 20:51
4
DECLARE @data datetime=GetDate()

SELECT concat(YEAR(@data),'-',MONTH(@data),'-',DAY(@data)) As data_convertida

The Concat function is valid only from SQL Server 2012 if you do not have this SQL use the following

SELECT cast(YEAR(@data) as varchar(4))+'-'+cast(MONTH(@data)  as varchar(2))+'-'+cast(DAY(@data) as varchar(4)) As data_convertida

Note: See that in this case I used a variable of type datetime Using the DAY (), MONTH () and YEAR () functions, SQL automatically knows where to find the values for each of the values it requests in the function.

What type of variable / data you are trying to convert to this format

    
15.12.2015 / 14:22
0
  

EDIT: After some tests I realized that the CONVERT function will only work if the variable that will be formatted / converted is of type Date .

Use the CONVERT function (type_date (size), variable, style) .

The first parameter is the data type that will be formatted, the second parameter is the variable that will convert and the third is the code of the pattern you want, in which case 111 corresponds to yyyy/mm/dd .

CONVERT(VARCHAR(10), GETDATE(), 111);
    
15.12.2015 / 14:10
-1
SELECT convert(datetime, '14/12/2015 00:00:00', 103)
    
15.12.2015 / 14:09
-1

In MYSQL you can use DATE_FORMAT ()

    
15.12.2015 / 14:12
-1

Try this:

  

SELECT CONVERT (VARCHAR (10), GETDATE (), 120)

Or this

  

select date (ColumnName) from tablename

    
15.12.2015 / 14:10