entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Ayuda con consulta en SQLServer

Hola, buen dia.

Pido su ayuda para un problema que tengo con una consulta.
Como puedo obtener el numero de registros de una tabla donde mi fecha inicial y fecha final tienen que estar en un determinado año?

¿Cómo puedo hacer esa comparacion de fechas con el año?

GRacias por su ayuda :D

3 Respuestas

2votos

Leonardo-Tadei Puntos227020

Hola,

podría ser algo así por ejemplo para el 2013:

SELECT COUNT(id)
FROM Tabla
WHERE fecha >= ''2013-01-01 AND fecha <= "2013-12-31"

y te ahorrás comparar fechas enteras con solo el año, agregandole la parte que le falta.

En MySQL está la función YEAR() que extrae el año, pero no sé si hay un equivalente en ese RDBMS. La query sería así:

SELECT COUNT(id)
FROM Tabla
WHERE YEAR(fecha) = 2013

Tendrás que ajsutar los nobmres de los campos a los de tu tabla...

Saludos!

0voto

kaiba78987 comentado

También se puede utilizar el operador between, que es equivalente:

...
WHERE fecha BETWEEN fecha_inicio_rango AND fecha_fin_rango

0voto

Bellatrix99 comentado

:O y eso tambien aplica por ejemplo, en un rango de meses?

0voto

Leonardo-Tadei comentado

Sí. En realidad de aplica a años, meses, días, horas, minutos y segundos si el campo es date tiempo, y solo a años, meses y días si el campo es date.

1voto

jdbenitez Puntos840

A mi parecer la mejor forma para seleccionar un rango de fechas es con BETWEEN, como explica kaiba78987. Que aplica para días, meses, años etcétera, para complementar las sintaxis, algo como:

SELECT COUNT(id)
FROM Tabla
WHERE fecha BETWEEN '20130101 00:00:00' AND '20131231 23:59:59'

que sería todo el año 2013, y así es como puedes acotar entre fechas en específicas, repito, a mi parecer la mejor forma.

0voto

Leonardo-Tadei comentado

Hola!
la consulta con between es equivalente a la que indico.
Bellatrix usa MS SQLServer y no estoy seguro que exista la función between ahí, salvo en alguna versión muy reciente.
Salu2!

0voto

jdbenitez comentado

Hola, leonardo.

Uso la versión 2005 y si existe la función. Lo "bueno" de esta función es que no es necesario hacer conversiones entre formatos de fechas, por lo que la considero una excelente opción.

0voto

oskar5445 Puntos700

Hola, si la fecha que buscas le puedes dar el formato que sea con un to_Char lo consigues facil

to_char(<fecha o fila de la tabla>,<formato>)
to_char(fecha,'yy')<> o =  to_char(fecha,'yy')

A ver si sirve =)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta