Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL Server:给定年份查找上一年和给定年份的所有内容(包括)_Php_Sql_Sql Server_Tsql - Fatal编程技术网

Php SQL Server:给定年份查找上一年和给定年份的所有内容(包括)

Php SQL Server:给定年份查找上一年和给定年份的所有内容(包括),php,sql,sql-server,tsql,Php,Sql,Sql Server,Tsql,我不熟悉SQL Server语法,但我想应该是这样的: $year = 2010; $query = mssql_query("SELECT * FROM dbo.events WHERE date BETWEEN $year AND $year-1"); 在这种情况下,我只是不知道如何格式化$year。你很接近了。假设date列是datetime数据类型: SELECT * FROM dbo.events WHERE DATEP

我不熟悉SQL Server语法,但我想应该是这样的:

$year = 2010;

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

在这种情况下,我只是不知道如何格式化$year。

你很接近了。假设
date
列是datetime数据类型:

SELECT *
    FROM dbo.events
    WHERE DATEPART(year, date) BETWEEN $year-1 AND $year
SQL Server具有比DATEPART更短的写入时间:

select * from dbo.events where year(date) between $year-1 and $year
试试这个:

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
declare@year int
设置@year=2010
从dbo.events中选择*
其中铸造(年份([日期])为整数)=@1年

是否仅选择一年

这对我很有用:

$year = 2011;
select * from table where year(date_field) = $year