SQL Server: по заданному году найдите все (включительно) по сравнению с предыдущим и данным годом - PullRequest
2 голосов
/ 18 февраля 2011

Я не знаком с синтаксисом SQL Server, но думаю, что он будет выглядеть примерно так:

$year = 2010;

$query = mssql_query("SELECT * FROM dbo.events 
                      WHERE date BETWEEN $year AND $year-1");

Я просто не уверен, как отформатировать $ year в этом случае.

Ответы [ 4 ]

3 голосов
/ 18 февраля 2011

Ты рядом.Предполагая, что столбец date является типом данных datetime:

SELECT *
    FROM dbo.events
    WHERE DATEPART(year, date) BETWEEN $year-1 AND $year
1 голос
/ 19 октября 2011

Вы пытаетесь выбрать только один год?

Это работает для меня:

$year = 2011;
select * from table where year(date_field) = $year
1 голос
/ 18 февраля 2011

SQL Server имеет функцию YEAR , которая даже короче, чем DATEPART:

select * from dbo.events where year(date) between $year-1 and $year
0 голосов
/ 18 февраля 2011

Попробуйте это:

declare @year int
set @year=2010

select * from FROM dbo.events 
WHERE cast(YEAR([date]) as int) <= @year 
and cast(YEAR([date]) as int) >= @year-1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...