| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Mar 13 Mar, 2007 12:46 am Asunto: SQL... where datetime >= time AND...en transactsql sqlser |
|
|
Tengo una aplicacion en builder con bd paradox que compara campos tipo time en las consultas sql y campos tipo date por separado, pero al migrar a sqlserver solo tengo campos datetime, con lo que cuando comparo un campo datetime > '15:00' me esta comparando la fecha y hora del datetime con la fecha actual y 15:00 , y yo solo quiero que me compare las horas.
No se si me explico bien.
Se me paso una solución un poco chapuza por la cabeza y es escribir la misma fecha en todos los campos time, asi por ejemplo en lugar de guardar '16:00' como en paradox, guardaria '1900/01/01 16:00:00' y lo compararia con '1900/01/01 15:00:00' en lugar de usar '15:00', pero no me gusta esta solución.
¿Hay alguna manera de comparar solo las horas o solo las fechas? de 2 campos datetime en la consulta sql en sql server?
Gracias de antemano. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 13 Mar, 2007 4:24 am Asunto: |
|
|
No manejo MS SQL Server pero en Firebird existe una función que hace lo que necesitas.. me imagino que investigando un poco encontraras una similar en MS SQL Server.
Ejemplo en Firebird
| Código: |
AnsiString SQL = "SELECT * FROM Tu_Tabla "
"WHERE CAST(Tu_campo as Time) > 15:00"
|
En este caso se utiliza la función CAST que convierte el valor completo de la fecha en solo un tipo de dato TIME y con esto se puede realizar la comparación.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Mar 13 Mar, 2007 9:46 am Asunto: |
|
|
| gracias, en sql server hay cast y convert pero no vi ningun ejemplo de como usarlos, voy a probar. |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Mar 13 Mar, 2007 10:38 am Asunto: |
|
|
Pues no consigo que funcione, no hay nada en transact sql que me sirva, hay una funcion que es datepart pero solo me sirve para comparar horas y minutos por separado, pero no todo junto.
:_ |
|
| Volver arriba |
|
 |
|