2012-04-20 121 views
37

Tengo este formato de fecha: 2011-09-28 18:01:00 (en varchar), y quiero convertirlo a fecha y hora cambiando a este formato 28-09-2011 18:01 : 00. ¿Cómo puedo hacerlo?SQL Server Convertir Varchar a Datetime

+0

cuales RDBMS? ya que la funcionalidad de la fecha puede diferir – Hajo

+1

@Hajo: Creo que el título básicamente lo explica – Quassnoi

+0

@Quassnoi podría ser un servidor microsoft sql, pero no estoy 100% seguro, muchos rdbms pueden ser un servidor sql;) – Hajo

Respuesta

62
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime 

SELECT CONVERT(VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00] 
+ ' ' + SELECT CONVERT(VARCHAR(30), @date ,108) -- full date [with time/minutes/sec] 
+0

Solo recuerde que la variable datetime no tiene formato. Debe convertirlo a varchar si desea que se muestre en un formato determinado. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+1

datetime no tiene formato, pero debe especificar cómo reproducir el texto (donde id el día/mes ...) – Zyku

10

gusta esta

DECLARE @date DATETIME 
SET @date = '2011-09-28 18:01:00' 
select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108) 
+0

'Quiero convertirlo a fecha y hora cambiando a este formato 28-09-2011 18: 01: 00.- ¿Dónde utiliza el nuevo formato? – MatBailie

+0

Esto funciona, pero no hay necesidad de cuatro conversiones. Mire la respuesta de Diego SELECT CONVERTIR (VARCHAR (30), GETDATE(), 105) – daniloquio

+0

Sí, la respuesta de Diego necesita cambiar varchar (10) a (30). Entonces funcionará. – daniloquio

3

Se podía hacerlo de esta manera, pero lo deja como un varchar

declare @s varchar(50) 

set @s = '2011-09-28 18:01:00' 

select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9) 

o

select convert(varchar(20), @s, 105) 
+0

Esto deja el tiempo – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz tienes razón, lo arregló. – Taryn

9

this sitio web muestra varias opciones de formato.

Ejemplo:

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) 
+5

Excepto que 105 no incluye una parte de tiempo. Y el OP comienza con una cadena, no con un horario. Este * es * útil, pero no es lo que consideraría una respuesta completa. – MatBailie

+2

gracias por los comentarios muchachos. De hecho, solo quería apuntarlo en la dirección correcta, por eso escribí "example" – Diego

3

Como se ha dicho, de fecha y hora no tiene el formato/formato de representación de cadena.

Puede cambiar la salida de cadena con algo de formateo.

para convertir su cadena a una fecha y hora:

declare @date nvarchar(25) 
set @date = '2011-09-28 18:01:00' 

-- To datetime datatype 
SELECT CONVERT(datetime, @date) 

Da:

----------------------- 
2011-09-28 18:01:00.000 

(1 row(s) affected) 

para convertir esa a la cadena que desea:

-- To VARCHAR of your desired format 
SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108) 

Da:

------------------- 
28-09-2011 18:01:00 

(1 row(s) affected) 
3
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108) 
5

usted puede tener todos los diferentes estilos de datetime conversion:

http://www.w3schools.com/sql/func_convert.asp

Esto tiene rango de valores: -

CONVERT(data_type(length),expression,style) 

Para valores de estilo,
Elija a cualquier persona que necesite l IKE I need 106.

Con todas las existentes mi respuesta tiene un enlace específico al sitio de ayuda para que incluso un principiante pueda consultar. Así es como más útil

+0

Gracias @Dharmesh – baymax

+0

Su respuesta parece simplemente repetir la información proporcionada en una respuesta existente. Debido a esto, he eliminado tu respuesta. Si desea agregar * nueva * información a su respuesta, edite su publicación y luego márquela para eliminarla. – Matt

1

This web tiene algunos buenos ejemplos para convertir cualquier varchar hasta la fecha o de fecha y hora

3

intentar es utilizado el siguiente

select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl 
Cuestiones relacionadas