Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Fecha php y SQL server

Estas en el tema de Fecha php y SQL server en el foro de PHP en Foros del Web. Hola Maestros. De antemano gracias por la ayuda que me presten. El problema es que estoy haciendo una consulta a un campos fecha en SQL ...
  #1 (permalink)  
Antiguo 19/05/2013, 08:00
Avatar de juanchupin  
Fecha de Ingreso: abril-2007
Ubicación: MedellÃ*n, Antioquia, Colombia
Mensajes: 43
Antigüedad: 16 años, 11 meses
Puntos: 3
De acuerdo Fecha php y SQL server

Hola Maestros.

De antemano gracias por la ayuda que me presten.

El problema es que estoy haciendo una consulta a un campos fecha en SQL server desde PHP. Normlamente me lo debería imprimir así '2013-04-26 11:52:00' pero me la esta imprimiendo así 'Apr 29 2013 11:52AM' y no me sirve porque debo hacer unas comparaciones con la misma base de datos y no te toma este dato.

Y no se como hacer para que me imprima el datos como originalmente sale de la DB '2013-04-26 11:52:00'.

Nuevamente gracias por la ayuda que me pueda brindar.
  #2 (permalink)  
Antiguo 19/05/2013, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Fecha php y SQL server

Es complicado adivinar si haces algo mal en tu código, así como adivinar si tienes alguna configuración de SQL Server que haga esta conversión, es imposible adivinar tantas cosas que serían útiles para entender si es un problema de tu programación o configuración.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/05/2013, 15:52
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fecha php y SQL server

Como te dice pateketrueke, hay que adivinar entre lineas.

Dices que
Código Cita:
Ver original
  1. Normalmente me lo debería imprimir así '2013-04-26 11:52:00' pero me la esta imprimiendo así 'Apr 29 2013 11:52AM'

¿Cómo se han introducido los datos?
Desde PHP tienes diversos formatos según puedes ver en http://php.net/manual/es/function.date.php
Código PHP:
Ver original
  1. <?php
  2. // Se asume que hoy es March 10th, 2001, 5:16:18 pm, y que estamos en la
  3. // zona horaria Mountain Standard Time (MST)
  4.  
  5. $hoy = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
  6. $hoy = date("m.d.y");                         // 03.10.01
  7. $hoy = date("j, n, Y");                       // 10, 3, 2001
  8. $hoy = date("Ymd");                           // 20010310
  9. $hoy = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
  10. $hoy = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
  11. $hoy = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
  12. $hoy = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
  13. $hoy = date("H:i:s");                         // 17:16:18
  14. $hoy = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (el formato DATETIME de MySQL)
  15. $hoy = date("Y-m-d");                   // 2001-03-10 17:16:18 (el formato DATE de MySQL)
  16. ?>

Lo natural es que el campo fecha este en MySQL como DATE (en formato '2013-04-26') ó DATETIME (en formato '2013-04-26 11:52:00')

Pero en la consulta te dará según lo hayas registrado. La corrección ha de iniciarse con la entrada de la fecha y cómo lo registra MySQL
  #4 (permalink)  
Antiguo 20/05/2013, 11:01
Avatar de juanchupin  
Fecha de Ingreso: abril-2007
Ubicación: MedellÃ*n, Antioquia, Colombia
Mensajes: 43
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Fecha php y SQL server

Muchas gracias por sus respuestas.

Disculpen por no especificar un poco más, a continuación lo haré.

Consulto la fecha en la DB(SQL SERVER) con el siguiente método

Código PHP:
Ver original
  1. public function setUltimaLiquidacion($idusuario) {
  2.         $sql_query = "SELECT TOP 1 FechaF, liquidacion FROM tblLiquidacion
  3.            WHERE usuario = '$idusuario' ORDER BY  FechaF DESC";
  4.         $ejecuta = mssql_query($sql_query, ConecctionSQLServer::connect());
  5.  
  6.         $this->lista_liquidacion = mssql_fetch_array($ejecuta);
  7.     }

Y retorno lista_liquidacion que es un array con el resultado de la consulta con los campos que consulte (FechaF, liquidacion), normal.

Pero cuando lo imprimo en php lo que tiene el array(lista_liquidacion) es cuando me muestra ese campo FechaF así 'Apr 29 2013 11:52AM'.

Pero si yo voy y hago este misma consulta directamente en Microsoft SQL server Manager Studio me arroja el resultado(campo FechaF) correctamente 2013-04-29 11:52:00, y es lógico porque estoy en el motor de DB.

Espero haber tenido la aclaración que pedían. Si hace falta algo más lo piden y yo les aclaro. Muchas gracias por la ayuda que me puedan brindar.

PD: txemaarbulo, no estoy trabajando con mysql(ójala), en este caso estoy trabajando con SQL Server.
  #5 (permalink)  
Antiguo 20/05/2013, 11:09
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Fecha php y SQL server

Holas, juanchupin.

Tuve este mismo problema: lo puedes salvar desde la consulta SQL misma, para que quede en un formato reconocible para PHP:

Código sql:
Ver original
  1. -- te devuelve algo como 2013/05/20 13:12:55
  2. SELECT TOP 1 CONVERT(VARCHAR, FechaF, 111) + ' ' + CONVERT(VARCHAR, FechaF, 108) AS FechaF, liquidacion FROM tblLiquidacion

Ahora, si en PHP sólo quieres mostrarla, sin realizar operaciones sobre esa fecha, podrías consultarla directo con el formato que quieres que tenga:

Código sql:
Ver original
  1. -- te devuelve algo como 20/05/2013 13:12:55
  2. SELECT TOP 1 CONVERT(VARCHAR, FechaF, 103) + ' ' + CONVERT(VARCHAR, FechaF, 108) AS FechaF, liquidacion FROM tblLiquidacion

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #6 (permalink)  
Antiguo 20/05/2013, 15:15
Avatar de juanchupin  
Fecha de Ingreso: abril-2007
Ubicación: MedellÃ*n, Antioquia, Colombia
Mensajes: 43
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Fecha php y SQL server

quinqui Muchas Gracias he solucionado el problema con tu aporte, le hice una pequeña mejora. Para evitar hacer dos convert (uno para la fecha y otro para la hora) cambié el 111 por el 20 y listo me imprime la el dato exactamente como lo necesito 2013-04-29 11:52:00

Dejo la solución por si alguien más tiene el mismo problema.


Código SQL:
Ver original
  1. SELECT TOP 1 CONVERT(VARCHAR, FechaF, 20) AS FechaF,
  2.             liquidacion FROM tblLiquidacion WHERE usuario = '$idusuario' ORDER BY  FechaF DESC

PD: Gracias a los dos compañeros que también tuvieron interés en aportar solución pateketrueke y txemaarbulo
  #7 (permalink)  
Antiguo 20/05/2013, 15:26
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: Fecha php y SQL server

¡No conocía el 20! Gracias a ti por el dato también :D
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: fecha, server, sql
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:17.