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 ....
convertir y GETDATE provienen de servidor SQL, así que supongo que – ryudice
servidor SQL Server SQL 2008 –