¿Cómo formatear el datetime como M / D / YYYY en SQL Server?

Para convertir un datetime a MM/DD/YYYY , esto funciona:

 declare @datetime datetime = '2015-01-01' select convert(varchar(10),convert(date,@datetime),101) 

Esto evalúa a 01/01/2015 . ¿Cómo puedo convertir la date a 1/1/2015 ?

Nada en http://www.sql-server-helper.com/tips/date-formats.aspx coincide con el formatting M/D/YYYY .

Creo que la única posibilidad que tienes es hacer algo como esto:

 DECLARE @datetime DATETIME = '2015-01-01' SELECT LTRIM(STR(MONTH(@datetime))) + '/' + LTRIM(STR(DAY(@datetime))) + '/' + STR(YEAR(@datetime), 4) 

Con SQL Server 2012 y superior, puede hacer esto:

 SELECT FORMAT(@datetime, 'M/d/yyyy') 
 DECLARE @datetime DATETIME = '2015-01-01'; SELECT STUFF(REPLACE('/' + CONVERT(CHAR(10), @datetime, 101),'/0','/'),1,1,'') 

Así es como funciona:

  1. Primero CONVERTIR el DATETIME a CHAR
  2. A continuación, agregue un carácter '/' al principio
  3. REEMPLAZAR todo '/ 0' con '/'
  4. Con STUFF, deshazte del primer '/'

No hay un estilo de conversión que use un solo dígito día o mes. Esto podría funcionar, sin embargo.

 declare @datetime datetime = '2015-01-01' select cast(month(@datetime) as varchar(2)) + '/' + cast(day(@datetime) as varchar(2)) + '/' + cast(year(@datetime) as varchar(4))