Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hay algo que me parece curioso ustedes usan

Convert(char(10), getdate(), 103)

Pero veo en las páginas que mostre que estan usando esto

Convert(varchar(10),'2005-06-01 15:37:30.087', 101)

tal vez por ahi esta el asunto, no se.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 08-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por F1 MSQL para el estilo de la función CONVERT
Código:
(yy)	(yyyy) 	Standard 	    Input/Output**  
---------------------------------------------------------
0	100	Default		        mon dd yyyy hh:miAM (or PM)  
1	101	USA			mm/dd/yy  
2	102 	ANSI			yy.mm.dd  
3	103	British/French		dd/mm/yy
Ademas de muchos otros formatos... 20 para ser exactos, desde el formato kuwaiti hasta el canónico.
__________________


Última edición por ContraVeneno fecha: 08-05-2008 a las 23:37:41.
Responder Con Cita
  #3  
Antiguo 08-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cool

Primero que nada, gracias a todos...

Cita:
Empezado por egostar Ver Mensaje
Hay algo que me parece curioso ustedes usan

Convert(char(10), getdate(), 103)

Pero veo en las páginas que mostre que estan usando esto

Convert(varchar(10),'2005-06-01 15:37:30.087', 101)

tal vez por ahi esta el asunto, no se.....

Salud OS
El problema no es utilizar esto Convert(char(10), getdate(), 103) o Convert(varchar(10),'2005-06-01 15:37:30.087', 101), lo que necesito es que en vez de convertir a Varchar(10) sea a tipo Date ..

Cuando realizo la consulta convirtiendo los datos a Varchar(10), me entrega resultados, pero de un los 10 datos (comprobados) que me tiene que entregar, solo me entrega 1...el último....

en cambio si realizo el filtro utilizando el campo fecha sin convertirlo a varchar(10) me devuelve los 10 datos.... (ambas sentencias probadas con los mismos rangos de fechas...)

Aunque se me esta ocurriendo que el campo fecha lo utilice 2 veces.. uno para hacer el filtro (con hora incluido)... y otro para mostrar como fecha (utilizando el convert...)

Estoy revisando los la información...

Salu2
__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 09-05-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por BlueSteel Ver Mensaje
Aunque se me esta ocurriendo que el campo fecha lo utilice 2 veces.. uno para hacer el filtro (con hora incluido)... y otro para mostrar como fecha (utilizando el convert...)
Eso sería lo más sencillo.

¿el filtro lo aplicas en el dataset? Si es así, pues lo mejor es eso, utilizar el campo dos veces.
Por que el filtrado en SQL, si utilizas o no la función convert, no debería de afectar en nada.
__________________

Responder Con Cita
  #5  
Antiguo 09-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cool

Cita:
Empezado por ContraVeneno Ver Mensaje
Eso sería lo más sencillo.

¿el filtro lo aplicas en el dataset? Si es así, pues lo mejor es eso, utilizar el campo dos veces.
Por que el filtrado en SQL, si utilizas o no la función convert, no debería de afectar en nada.
Si ya realice eso.. y me funciona salvo cuando... el rango de fecha es dentro del mismo dia...

realice una prueba (sabia que decia arrojar al menos 1 dato...)... con el rango sgte

'04/05/2008' y '05/05/2008' -> funciono.. me da 1 dato
'04/05/2008' y '04/05/2008' -> no funciono... me debia entregar 1 dato

se que es por la hora... pero tratare de ver si los configuro en el DateTimePicke... aunque en ningun caso hago referencia a la hora...

Salu2
__________________
BlueSteel
Responder Con Cita
  #6  
Antiguo 09-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cool

Pues.. ahora me funciono... pero realice lo sgte..

a DateTimePicker llamado

vDes... le asigne en Time 0:00:00 y al
vHas... le asigne en Time 23:59:59

y me entrego lo que necesito...

que cosas no ??? si solo estaba utilizando el Date.. y no el Time...

Salu2
__________________
BlueSteel
Responder Con Cita
  #7  
Antiguo 09-05-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por BlueSteel Ver Mensaje
Pues.. ahora me funciono... pero realice lo sgte..

a DateTimePicker llamado

vDes... le asigne en Time 0:00:00 y al
vHas... le asigne en Time 23:59:59

y me entrego lo que necesito...

que cosas no ??? si solo estaba utilizando el Date.. y no el Time...

Salu2
Ah pues mira, abres todo el rango de horas y listo , lo bueno es que lo solucionaste antes de salir de tu trabajo

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #8  
Antiguo 09-05-2008
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
Por las dudas si te sirve te aclaro un par de cosas:

Cita:
que cosas no ??? si solo estaba utilizando el Date.. y no el Time...
en Delphi el tipo Date esta definido asi:
Código Delphi [-]
type TDate = type TDateTime;
por lo que siempre es TDateTime (fecha y hora) y en SQL Server tambien es fecha y hora siempre.

si queres pasar como parametro solo la fecha sin la hora lo podes hacer asi:
Código Delphi [-]
Datos.AQ_VOrden.Parameters[0].AsDateTime := INT(vDes.Date);
Como el Tipo TDateTime internamente se guarda como un float donde la parte entera es la fecha y la parte decimal es la hora, al hacer el INT() te quedas solo con la parte entera que es la fecha

Con respecto a seleccionar solo la fecha de un campo de DateTime de SQL Server tenes dos opciones:
- Si el problema es solo mostrar, podes asignarle un formato al campo para que muestre solo la fecha. Esto es haciendo doble clic sobre la query, seleccionas el campo de tipo DateTime que queres mostrar solo la fecha y en la propiedad DisplayFormat pones dd/mm/yyyy y con eso solo va a mostrar la fecha (sigue teniendo la hora, pero no la muestra por esta mascara que le pones)

- Si por alguna razon nesesitas que el campo que seleccionas solo tenga la fecha y que sea de tipo DateTime lo podes hacer en SQL Server definiendo una funcion que le quite la parte de la hora. Sinceramente yo no encontre una funcion en SQL Server 2000 que hiciera esto, asi que la hice yo y aca te la dejo:
En el Administrador Corporativo del SQL Server 2000, en la parte de Funciones Definidas por el Usuario, agregas una nueva funcion con lo siguiente:

Código SQL [-]
CREATE FUNCTION dbo.SoloFecha(@Fecha datetime)
RETURNS datetime AS  
BEGIN 
    declare @FechaAux datetime
    
    set @FechaAux = @Fecha

    set @FechaAux = dateAdd(hh, -datePart(hh, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(mi, -datePart(mi, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(ss, -datePart(ss, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(ms, -datePart(ms, @Fecha), @FechaAux)

    return @FechaAux
END

luego en tu consulta haces
Código SQL [-]
select dbo.SoloFecha(Ord_Fecha) as Fecha

tambien lo podes usar en el where para que cuando filtres solo tenga en cuenta la fecha y no la hora

Código SQL [-]
Where dbo.SoloFecha(Ord_Fecha) Between dbo.SoloFecha(:Var1) And dbo.SoloFecha(:Var2)

Bueno, espero que te sirva y que no sea tarde ya
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Formato fecha y hora TDBGrid totote Varios 5 10-05-2008 02:51:55
formato fecha y hora a solo Fecha ozegarra Firebird e Interbase 6 22-02-2008 18:43:34
Problema con formato de fecha y hora SaurioNet MS SQL Server 1 15-06-2006 23:28:28
Formato de Fecha y Hora adebonis Varios 2 17-03-2005 22:07:40
Cambiar formato de hora y fecha JODELSA API de Windows 1 30-04-2004 18:34:53


La franja horaria es GMT +2. Ahora son las 02:49:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi