Foros del Web » Programando para Internet » ASP Clásico »

Busqueda en un campo

Estas en el tema de Busqueda en un campo en el foro de ASP Clásico en Foros del Web. Tengo un campo fecha con este formato dd/mm/aaaa Como puedo coger dentro el select el campo mes, o sea los 2 caracteres del mes y ...
  #1 (permalink)  
Antiguo 07/05/2006, 11:59
Usuario no validado
 
Fecha de Ingreso: mayo-2006
Mensajes: 113
Antigüedad: 18 años, 11 meses
Puntos: 0
Busqueda en un campo

Tengo un campo fecha con este formato dd/mm/aaaa
Como puedo coger dentro el select el campo mes, o sea los 2 caracteres del mes y compararlos usano un Like para q me de un resultado.

BuscarMes es una variable q recoge un valor de otra pag en formato 01,02,03, etc refiriendose a cada mes del año.
Quiero q se compare con la lectura de la fecha de los caracteres 4to y 5to y si coinciden q me devuelva todos los campos.

Recordset2.Source = "SELECT Fecha FROM dbo.Persona where mid(Fecha),4,2 LIKE Fecha'"&BuscarMes&"' "

Quiero q quede algo asi, porsupuesto, esto q tengo ahi da error.

Se q debo usar la funcion Mid, pero donde??
Saludos a todos.
  #2 (permalink)  
Antiguo 07/05/2006, 16:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 27
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno el lenguaje Transact-SQL, no es el mismo que el VBScript.
Puedes utilizar el comando Month(Fecha) que te devuelve un entero con el mes de la fecha u otra tambien interesante como el Datepart, que devuelve un entero que representa la parte de la fecha especificada de la fecha indicada.
Sintaxis
DATEPART ( datepart , date )
Parte de la fecha Abreviaturas
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
hour hh
minute mi, n
second ss, s
millisecond ms


Por ejemplo:
SELECT DATEPART(month, GETDATE()) AS 'Mes'

Te devuelve:
Mes: 5

Saludos
  #3 (permalink)  
Antiguo 08/05/2006, 06:32
Usuario no validado
 
Fecha de Ingreso: mayo-2006
Mensajes: 113
Antigüedad: 18 años, 11 meses
Puntos: 0
DATEPART no es tambien una funcion del VBscript?
y Mes, esa variable esta ahi solamente para recibir el valor de DATEPART(month, GETDATE()) no?
A ver si entendiste mi problema.
Tengo un campo fecha que es generado cuando haces una actualizacion o una insercion en cualquiera de los demas campos.
EJ:
Tengo los sig campos:
Nombre, Apellidos, Edad, Fecha, Hora y ID.
Al insertar un nuevo registro Inserto, Nombre, Apellidos y Edad, la fecha tengo una funcion Date() y la hora Time() para q me lo inserte automatico.
Por lo tanto lo q tengo en el campo fecha es un valor generado por esa funcion.
Ahora, como voy a insertar diferentes meses quiero mediante un un menu desplegable q tenga los 12 meses del año. Al seleccionar un mes quiero q me muestre por supuesto todos los registros q se entraron en ese mes en específico.
Por eso decia q tenia q leer la cadena generada por Date(), q lo ideal seria usando un mid, pero en SQL no puedo hacer eso.
Alguna idea?
He probado varia ideas como un select case pero nada.
  #4 (permalink)  
Antiguo 08/05/2006, 08:03
Usuario no validado
 
Fecha de Ingreso: mayo-2006
Mensajes: 113
Antigüedad: 18 años, 11 meses
Puntos: 0
Recordset2.Source = "SELECT *, Datepart(mm, Fecha) as 'Fecha' FROM dbo.Persona Where Fecha Like '"&BuscarMes&"'"

Puede quedar algo asi?
BuscarMes recoge un valor numerico entre 1 y 12

Última edición por llanesluna; 08/05/2006 a las 08:36
  #5 (permalink)  
Antiguo 08/05/2006, 09:36
Usuario no validado
 
Fecha de Ingreso: mayo-2006
Mensajes: 113
Antigüedad: 18 años, 11 meses
Puntos: 0
Me canse, lo resolvi facil, hice un campo mes q tomara el valor del mes insercion o modificacion del dato y listo.
Ahora resuelvo con un LIKE
Es algo interesante el datepart, pero no lo logré.
  #6 (permalink)  
Antiguo 08/05/2006, 10:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 27
Antigüedad: 21 años, 2 meses
Puntos: 0
Select * from dbo.Persona WHERE DATEPART(mm, Fecha) = '10'

Te dara todo lo de Octubre.
Saludos
  #7 (permalink)  
Antiguo 08/05/2006, 18:41
Usuario no validado
 
Fecha de Ingreso: mayo-2006
Mensajes: 113
Antigüedad: 18 años, 11 meses
Puntos: 0
Gracias, como dijo un gran filosofo, a veces la solucion del problema es la mas sencilla.
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:32.