2012-07-29 32 views
5

Necesito convertir datetime de 2012-07-29 10:53:33.010 a 29/07/2012 10:53:33.Formato de fecha en dd/mm/aaaa hh: mm: ss

He intentado utilizar

select CONVERT(varchar(20), GETDATE(), 131) 

pero su fecha en la pantalla de acuerdo con el calendario de la Hégira

11/09/1433 10:53:33: 

ayudar por favor?

+0

convertir y GETDATE provienen de servidor SQL, así que supongo que – ryudice

+0

servidor SQL Server SQL 2008 –

Respuesta

16

Esto se puede hacer de la siguiente manera:

select CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + convert(VARCHAR(8), GETDATE(), 14) 

espero que ayuda

0

Esto será varchar pero debe formatear como lo necesite.

RIGHT('0' + LTRIM(DAY(d)), 2) + '/' 
+ RIGHT('0' + LTRIM(MONTH(d)), 2) + '/' 
+ LTRIM(YEAR(d)) + ' ' 
+ RIGHT('0' + LTRIM(DATEPART(HOUR, d)), 2) + ':' 
+ RIGHT('0' + LTRIM(DATEPART(MINUTE, d)), 2) + ':' 
+ RIGHT('0' + LTRIM(DATEPART(SECOND, d)), 2) 

Dónde d es su campo datetime o variable.

3

Se puede combinar 2 formatos:

3 dd/mm/yy (British/French) 
8 hh:mm:ss 

acuerdo con CONVERT() function y utilizando + operador:

SELECT CONVERT(varchar(10),GETDATE(),3) + ' ' + CONVERT(varchar(10),GETDATE(),8) 
+0

Sí, tienes razón. Mi error. Pensé 'CONCAT()' es una función antigua disponible de SQL Server 2000. La he sustituido por el operador '+'. Gracias por el comentario. –

+0

Quiere un año completo – HichemSeeSharp

0
SELECT CONVERT(CHAR(10),GETDATE(),103) + ' ' + RIGHT(CONVERT(CHAR(26),GETDATE(),109),14) 
+1

Una buena respuesta debe incluir una explicación de la solución, en lugar de solo publicar el código. – samlev

0

El capítulo sobre CAST and CONVERT en MSDN Books Online, ha perdido la respuesta correcta en una línea ... puede usar el estilo no. 121 (ODBC canónica (con milisegundos)) para obtener el resultado que está buscando:

SELECT CONVERT(VARCHAR(30), GETDATE(), 121) 

Esto me da la salida:

2012-04-14 21:44:03.793 

Actualización: basado en su actualización pregunta - por supuesto, esto no funcionará - está convirtiendo una cadena (esto: '4/14/2012 2:44:01 PM' es solo una cadena - es NO una fecha y hora!) a una cadena ......

Necesitas primera convertir la cadena que tiene a un DATETIME y ENTONCES convertir de nuevo a una cadena!

Prueba esto:

SELECT CONVERT(VARCHAR(30), CAST('4/14/2012 2:44:01 PM' AS DATETIME), 121) 

Ahora usted debe conseguir:

2012-04-14 14:44:01.000 

Todos los ceros para los milisegundos, obviamente, ya que sus valores originales no incluían ningún ....

1
CREATE FUNCTION DBO.ConvertDateToVarchar 
(
@DATE DATETIME 
) 

RETURNS VARCHAR(24) 
BEGIN 
RETURN (SELECT CONVERT(VARCHAR(19),@DATE, 121)) 
END 
1
SELECT FORMAT(your_column_name,'dd/MM/yyyy hh:mm:ss') FROM your_table_name 

Ejemplo-

SELECT FORMAT(GETDATE(),'dd/MM/yyyy hh:mm:ss') 
Cuestiones relacionadas