Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   SQL - GetDate() (https://www.clubdelphi.com/foros/showthread.php?t=4844)

Viet 30-10-2003 17:00:01

SQL - GetDate()
 
Buenas Colegas!!

Antes que nada saludos a todos.

Bien, estoy trabajando contra MSSQL Server, y mi pregunta es simple.

Tengo que recuperar todos los registros donde el campo fecha sea hoy.
Este campo fecha es DateTime y almacena la fecha y hora de un evento.

Lo estoy tratando de hacer de varias formas pero ninguna me convence.

por ejemplo

en el Where pongo

Código:

DatePart(dy, fecha)=DatePart(dy, GetDate())
pero esto me trae los reguistros de otros años

tambien probe con

Código:

  Cast(Cast(fecha as int)as datetime)=Cast(Cast(GetDate() as int)as datetime)
esta forma me parece muy rapida y eficiente, pero el problema es que la conversion de GetDate() siempre me da un dia posterir a hoy,
osea, me da GetDate()+1. La verdad que no entiendo por que y no me gustaria qye esto sea un problema de configuracion del server. Y al migrarlo a otro server deba cambiar todos mis SP.

Preguntas

1) es normal que pase eso con GetDate()
2) se les ocurre una mejor forma ?

Saludos :rolleyes:

jachguate 30-10-2003 20:07:06

No hay una función Trunc() sobre TimeStamp.

No se si es parte del estándar, pero normalmente trunc(TimeStamp) quita la información de hora y deja solamente la fecha, por lo que

Trunc(fecha) = Trunc(GetDate())

debiera funcionar...

Hasta luego.

;)

__cadetill 30-10-2003 21:25:34

Cita:

Posteado originalmente por Viet
1) es normal que pase eso con GetDate()
Pues la verdad no lo se, nunca he utilizado GetDate()

Cita:

Posteado originalmente por Viet
2) se les ocurre una mejor forma ?
Prueba con esto a ver

Código:

Cast(fecha as date) = Cast(GetDate() as date)
Espero te sirva

Viet 30-10-2003 22:42:35

Gracias a ambos por sus respuestas, pero lamentablemente en MSSQL Server (6.5), no existe

ni Trunc , ni el tipo date......

...... asi que por ahora lo mejor que encontre es
Código:


DatePart(dy, fecha)=DatePart(dy, GetDate())
and (Year(fecha)=Year(GetDate()))

pero me parece un analisis demaciado costoso , para algo tan simple... sigo a la escucha de sugerencias..


;)


La franja horaria es GMT +2. Ahora son las 21:23:43.

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