Sql server SQL查询在服务器上不工作

Sql server SQL查询在服务器上不工作,sql-server,tsql,sql-server-2008-r2,Sql Server,Tsql,Sql Server 2008 R2,,我正在尝试执行SQL查询。对于生日,它在本地数据库上工作正常,但在服务器上它不提供任何输出: SELECT studentname ,CONVERT(VARCHAR ,birthday ,101) FROM birthday WHERE DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday) ,birthday ) BETW

,我正在尝试执行SQL查询。对于生日,它在本地数据库上工作正常,但在服务器上它不提供任何输出:

SELECT studentname
      ,CONVERT(VARCHAR ,birthday ,101)
FROM   birthday
WHERE  DATEADD(
           YEAR
          ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday)
          ,birthday
       ) BETWEEN CONVERT(DATE ,GETDATE()) AND CONVERT(DATE ,GETDATE()+7);




我想你犯了一个小错误

SELECT studentname
      ,CONVERT(VARCHAR ,birthday ,101)
FROM   TableName --here it should be table name not the field name
WHERE  DATEADD( 
           YEAR
          ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday)
          ,birthday
       ) BETWEEN CONVERT(DATE ,GETDATE()) AND CONVERT(DATE ,GETDATE()+7)
所以我检查了你的图像,它清楚地表明你在那里设置了错误的条件

参见下图,将7替换为15以显示数据

已更新

显示以下查询返回的内容

Select DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday),birthday)
它会告诉你

2016-01-29
2016-01-30
2016-01-31
2016-02-01
并执行下面的查询

SELECT CONVERT(DATE ,GETDATE())
2016-01-21

SELECT CONVERT(DATE ,GETDATE() + 7)
2016-01-28
CREATE TABLE #Temp (StudentName VARCHAR(100),StudentId int,birthday date);
INSERT INTO #Temp (StudentName,StudentId,birthday)
VALUES('tapan',5,'1997-01-29'),
('karan',6,'1997-01-30'),
('ravi',7,'1997-01-31'),
('anand',8,'1997-02-01')
SELECT studentname
      ,CONVERT(VARCHAR ,birthday ,101)
FROM   #Temp --here it should be table name not the field name
WHERE  DATEADD( 
           YEAR
          ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday)
          ,birthday
       ) BETWEEN '2016-01-21' AND '2016-01-28'

SELECT studentname,CONVERT(VARCHAR ,birthday ,101), DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday),birthday) as WhereConditionField FROM #Temp
SELECT DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday),birthday) as testcolumn FROM #Temp
SELECT CONVERT(DATE ,GETDATE())
SELECT CONVERT(DATE ,GETDATE() + 7)
DROP TABLE #Temp
而你符合你的条件,如何才能满足你的条件

如果您能理解,请参见下面的查询

SELECT CONVERT(DATE ,GETDATE())
2016-01-21

SELECT CONVERT(DATE ,GETDATE() + 7)
2016-01-28
CREATE TABLE #Temp (StudentName VARCHAR(100),StudentId int,birthday date);
INSERT INTO #Temp (StudentName,StudentId,birthday)
VALUES('tapan',5,'1997-01-29'),
('karan',6,'1997-01-30'),
('ravi',7,'1997-01-31'),
('anand',8,'1997-02-01')
SELECT studentname
      ,CONVERT(VARCHAR ,birthday ,101)
FROM   #Temp --here it should be table name not the field name
WHERE  DATEADD( 
           YEAR
          ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday)
          ,birthday
       ) BETWEEN '2016-01-21' AND '2016-01-28'

SELECT studentname,CONVERT(VARCHAR ,birthday ,101), DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday),birthday) as WhereConditionField FROM #Temp
SELECT DATEADD( YEAR ,DATEPART(YEAR ,GETDATE())- DATEPART(YEAR ,birthday),birthday) as testcolumn FROM #Temp
SELECT CONVERT(DATE ,GETDATE())
SELECT CONVERT(DATE ,GETDATE() + 7)
DROP TABLE #Temp

您在live server上遇到的错误是什么?应该有一些错误,或者生日表中可能没有数据。。。请检查您是否需要共享生日表的数据<代码>从生日选择*并显示数据。由于我需要检查,是否有任何基于您的情况的数据。它不工作我不知道为什么它不工作。我已上载数据。您的
WHERE
子句过滤掉所有数据,或者表中没有数据。尝试
选择studentname,CONVERT(VARCHAR,birthday,101),DATEADD(YEAR,DATEPART(YEAR,GETDATE())-DATEPART(YEAR,birthday))作为testcolumn,birthday FROM birthday
您看到任何数据了吗?仔细检查你希望看到的记录。最后一列显示了什么只是看到了我上传的两个图像..我在两个的生日表上插入了相同的值(在服务器和LocalDB上),然后我执行日期查询,LocalDB工作正常,但在服务器上没有…请告诉我为什么在服务器上它没有给我数据..好的,那么一定有相同的错误。提供错误信息或根据您的条件检查数据我没有收到任何错误…但输出中也没有数据仅列名称我可以看到..Rajesh Plz查看新上传的图像您可以清楚地了解我的问题…请帮助我解决此问题。。。