2016-09-19 2 views
-4

Я работаю на сервере SQL и у меня есть список дат в формате 2015-03-17 как бы я запрос к базе данных, так что только те события, которые произошли в 2015 году шоу доSQL Год Дата запроса

+1

Пожалуйста, попробуйте что-то само по себе. Это чрезвычайно простой запрос, который легко доступен в Google и на любом ресурсе SQL Server. – dfundako

ответ

1

Вы должны добавить это в запросах:

YEAR(DateField) = 2015 
+0

Собственно, вы не должны, и [** вот почему **] (http://stackoverflow.com/questions/799584/what-makes-a-sql-statement-sargable). –

0
Select * from YourTable where Year(SomeDateField)=2015 
3

Вы можете получить лучшие результаты, пытаясь:

SELECT * 
FROM TABLE 
WHERE DateField >= '2015-01-01 00:00:00' 
    and DateField < '2016-01-01 00:00:00' 

У этого есть более высокий шанс быть «sargable», если у вас есть указатель на этот столбец, вместо того, чтобы применять функцию над вашим DateField, что, безусловно, обойдется с использованием индекса.

+0

Понял, я вижу ваше обновление :). Удалил мой комментарий и бросил в upvote, чтобы вы положили. Это хороший ответ. – JNevill

+0

@JNevill Спасибо =) –

0

Выберите * from YourTable, где Date (SomeDateField)> 2015 и Date (SomeDateField) < 2016; Это поможет найти дату между двумя годами 2015 и 2016 гг.

+0

Почему? Почему не просто '= 2015'? – JNevill

+0

Он явно дал дату, поэтому дата не может быть взята непосредственно в 2015 году. –

Смежные вопросы