Foros del Web » Programando para Internet » PHP »

convertir STRING en DATETIME (sqlserver)

Estas en el tema de convertir STRING en DATETIME (sqlserver) en el foro de PHP en Foros del Web. Hola que tal! es la primera vez que pregunto algo por acá, espero me puedan ayudar.... tengo una función donde recibo una fecha y la ...
  #1 (permalink)  
Antiguo 03/06/2012, 02:40
 
Fecha de Ingreso: junio-2012
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta convertir STRING en DATETIME (sqlserver)

Hola que tal! es la primera vez que pregunto algo por acá, espero me puedan ayudar....

tengo una función donde recibo una fecha y la tengo que almacenar en una tabla de mi base de datos, (el campo en específico es un datetime). La fecha está en el formato que el solicita y aun así me muestra el siguiente error cada vez que trato de almacenar el dato:

"Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[22007]: Invalid datetime format: 241 [Microsoft][ODBC SQL Server Driver][SQL Server]Error de conversión al convertir una cadena de caracteres a datetime(...)"

al principio pensé que podía ser el formato de la fecha pero no, la fecha está bien, y el formato también.. llevo ya tiempo tratando de solventar pero no me sale. Lo último que probé fue realizar un convert en el query pero me muestra el MISMO error.... :(

aquí les dejo parte del código, espero puedan ayudarme!!....

Código PHP:
//aquí almaceno las fechas que necesito para luego pasarlas a la función donde almaceno en la BD

$Finicio gmdate($_GET['Finicio']);     
$Fculmina gmdate($_GET['Fculmina']); 
Código PHP:
//aquí el query que utilizo..
$query "INSERT INTO DependenciaDetalle (id_dependenciadetalle, fecha_inicio, fecha_final) VALUES ('".$idDetalle."', convert(datetime,'".Finicio."',101), convert(datetime,'".$Fculmina."',101)")"; 
arriba pueden ver que utilizo gmdate() pero también probé con strtotime() y otra que no recuerdo.... al imprimir, lo hace como debe ser, pero al momento de insertar... ufff el mismo error una y otra y otra y OTRA vez....

agradezco de antemano si pueden ayudarme!!
  #2 (permalink)  
Antiguo 03/06/2012, 15:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 6 meses
Puntos: 58
Respuesta: convertir STRING en DATETIME (sqlserver)

y cuales son los valores GET? igual esta ahi el error..
  #3 (permalink)  
Antiguo 03/06/2012, 15:55
 
Fecha de Ingreso: junio-2012
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Respuesta: convertir STRING en DATETIME (sqlserver)

Cita:
Iniciado por jossss Ver Mensaje
y cuales son los valores GET? igual esta ahi el error..
el recibe una fecha en el formato "YYYY/MM/DD".... incluso sin utilizar el GET y asignándole la fecha en la función, me sale el mismo error :/
  #4 (permalink)  
Antiguo 03/06/2012, 16:04
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años, 6 meses
Puntos: 58
Respuesta: convertir STRING en DATETIME (sqlserver)

A tener en cuenta el formato en que está configurado el servidor.. que puede ser contrario dd-mm-yyyy hh.mm.ss
ya que el valor predeterminado es 1900-01-01 00:00:00

Última edición por jossss; 03/06/2012 a las 16:12
  #5 (permalink)  
Antiguo 03/06/2012, 16:24
 
Fecha de Ingreso: junio-2012
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Respuesta: convertir STRING en DATETIME (sqlserver)

Cita:
Iniciado por jossss Ver Mensaje
en vez de '\" mandale la fecha sin espacios ni signos
ejemplo:
2012/05/31 15:50:23
seria
20120531155023
ya lo he probado sin espacios ni signos y me sale el mismo error.. y además el gmdate() me lo muestra sin el "formato fecha".... aunque como mencionaste que en el GET está el error, hice lo siguiente

Código PHP:
$Finicio gmdate("2012-10-02");
$Fculmina gmdate("2012-10-02"); 
y así SI funciona!.... lo raro es que lo que recibo con el GET es lo mismo (a simple vista por lo menos..) y me sale el error de conversión.. no tengo idea de que puede ser
  #6 (permalink)  
Antiguo 03/06/2012, 17:07
 
Fecha de Ingreso: junio-2012
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Sonrisa Respuesta: convertir STRING en DATETIME (sqlserver)

YA FUNCIONA!!....

entre la gran cantidad de pruebas que hice, decidí quitar el convert del query y solo dejar el gmdate() para convertirlo en el formato que necesita la BD....

Código PHP:
$Finicio gmdate($_GET['Finicio']);
$Fculmina gmdate($_GET['Fculmina']); 
Código PHP:
$query "INSERT INTO DependenciaDetalle (id_dependenciadetalle, fecha_inicio, fecha_final) VALUES ('".$idDDetalle."','".$Finicio."','".$Fculmina."')"
dejándolo así funciona a la maravilla.... lo extraño es que, anoche entre las pruebas que hice, estoy segura que lo probé exactamente ASÍ y me devolvía el error del comienzo, asumo que fue algún error de mi parte al momento de recibir los parámetros.... espero no volver a leer ese error otra vez ahahaha....

Muchas gracias Jossss por tu ayuda :)

Etiquetas: datetime, sql, string, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.