Definir fecha en consulta

29/01/2008 - 22:07 por Ruthenfords Tellez | Informe spam
TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime, al
insertar datos en el campo de fecha me ingresa con el formato largo: ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si me
encuentra el valor, lo que persibo es de que cuando me ingresa el valor al
compo fecha me ingresa la hora, es decir fecha larga, y no corte cuando hago
la consulta, mi pregunta es como hago para convertir esa fecha a corta, si
ya tengo una tabla con demasiados registros, o como podria hacer la consulta
para que me encuentre el dato.

gracias por su ayuda...

Preguntas similare

Leer las respuestas

#1 Luis Mata
29/01/2008 - 21:29 | Informe spam
Utiliza la opcion CONVERT para poder sacar fechas sin la hora.


"Ruthenfords Tellez" escribió en el mensaje
news:
TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime,
al insertar datos en el campo de fecha me ingresa con el formato largo:
ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si
me encuentra el valor, lo que persibo es de que cuando me ingresa el valor
al compo fecha me ingresa la hora, es decir fecha larga, y no corte cuando
hago la consulta, mi pregunta es como hago para convertir esa fecha a
corta, si ya tengo una tabla con demasiados registros, o como podria hacer
la consulta para que me encuentre el dato.

gracias por su ayuda...

Respuesta Responder a este mensaje
#2 jorge
29/01/2008 - 22:23 | Informe spam
en lugar the between emplea este metodo

WHERE FIELDDATE >= '1/28/2008 00:00:00' AND FIELDDATE <= '1/28/2008
23:59:59'

prueba de esa manera



"Ruthenfords Tellez" wrote in message
news:
TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime,
al insertar datos en el campo de fecha me ingresa con el formato largo:
ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si
me encuentra el valor, lo que persibo es de que cuando me ingresa el valor
al compo fecha me ingresa la hora, es decir fecha larga, y no corte cuando
hago la consulta, mi pregunta es como hago para convertir esa fecha a
corta, si ya tengo una tabla con demasiados registros, o como podria hacer
la consulta para que me encuentre el dato.

gracias por su ayuda...

Respuesta Responder a este mensaje
#3 jcac
29/01/2008 - 22:26 | Informe spam
Puedes hacer lo siguiente:

declare @fecha datetime
set @fecha = '20080131'
select dateadd(ss, -1, dateadd(dd, 1, @fecha))

la segunda fecha le aumentas 1 día y luego le quitas 1 segundo, espero te
sirva.

Saludos

"Ruthenfords Tellez" escribió en el mensaje
news:
TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime,
al insertar datos en el campo de fecha me ingresa con el formato largo:
ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si
me encuentra el valor, lo que persibo es de que cuando me ingresa el valor
al compo fecha me ingresa la hora, es decir fecha larga, y no corte cuando
hago la consulta, mi pregunta es como hago para convertir esa fecha a
corta, si ya tengo una tabla con demasiados registros, o como podria hacer
la consulta para que me encuentre el dato.

gracias por su ayuda...

Respuesta Responder a este mensaje
#4 Ruthenfords Tellez
29/01/2008 - 22:46 | Informe spam
Gracias me funciona...

saludos::

"jcac" escribió en el mensaje
news:
Puedes hacer lo siguiente:

declare @fecha datetime
set @fecha = '20080131'
select dateadd(ss, -1, dateadd(dd, 1, @fecha))

la segunda fecha le aumentas 1 día y luego le quitas 1 segundo, espero te
sirva.

Saludos

"Ruthenfords Tellez" escribió en el mensaje
news:
TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime,
al insertar datos en el campo de fecha me ingresa con el formato largo:
ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si
me encuentra el valor, lo que persibo es de que cuando me ingresa el
valor al compo fecha me ingresa la hora, es decir fecha larga, y no corte
cuando hago la consulta, mi pregunta es como hago para convertir esa
fecha a corta, si ya tengo una tabla con demasiados registros, o como
podria hacer la consulta para que me encuentre el dato.

gracias por su ayuda...





Respuesta Responder a este mensaje
#5 Alejandro Mesa
30/01/2008 - 01:30 | Informe spam
Ruthenfords Tellez,

Cambia el filtro de la sgte manera:

select *
from tu_tabla
where col_fecha >= '20070228' and col_fecha < '20070301'

o

select *
from tu_tabla
where col_fecha >= '20070228' and col_fecha < dateadd(day, 1, '20070228')

Puedes leer el filtro como seleccionar todas las filas donde la columna
col_fecha es mayor o igual a '2007-02-28T00:00:00.000' y col_fecha es menor a
'2007-03-01T00:00:00.000'.

Con una variable o parametro, recuerda primaro truncar el tiempo a 12:00 AM

declare @d datetime

set @d = getdate()

select *
from tu_tabla
where col_fecha >= dateadd(day, datediff(day, 0, @d), 0) and col_fecha <
dateadd(day, datediff(day, 0, dateadd(day, 1, @d)), 0)


AMB


"Ruthenfords Tellez" wrote:

TENGO UNA TABLA "X" donde tengo un campo fecha con el tipo de datetime, al
insertar datos en el campo de fecha me ingresa con el formato largo: ej:

02/28/2007 12:19:14 p.m.

el problema es que la hacer una consulta utilizando el between ej:

select * from X where fecha between '02/28/2007' and '02/28/2007', no me
encuentra nada, si pongo una fecha mayor a '02/28/2007' o sea

select * from X where fecha between '02/28/2007' and '03/01/2007' ahi si me
encuentra el valor, lo que persibo es de que cuando me ingresa el valor al
compo fecha me ingresa la hora, es decir fecha larga, y no corte cuando hago
la consulta, mi pregunta es como hago para convertir esa fecha a corta, si
ya tengo una tabla con demasiados registros, o como podria hacer la consulta
para que me encuentre el dato.

gracias por su ayuda...



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida