Sql 如何获取这两个日期的值
我想选择日期之间的值 表1Sql 如何获取这两个日期的值,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,我想选择日期之间的值 表1 Code Period Datefrom dateto Value 001 07/2011 01/07/2009 10/07/2009 100 211 07/2009 01/07/2009 05/07/2009 200 从上表中,我想检查datefrom和dateto之间的日期,如果日期介于datefrom dateto之间或等于datefrom dateto means,它应该返回empcode的值 试问 SELECT Value FROM ta
Code Period Datefrom dateto Value
001 07/2011 01/07/2009 10/07/2009 100
211 07/2009 01/07/2009 05/07/2009 200
从上表中,我想检查datefrom和dateto之间的日期,如果日期介于datefrom dateto之间或等于datefrom dateto means,它应该返回empcode的值
试问
SELECT Value
FROM table1
Where Period = '07/2009'
and Code = '211'
and Cast('02/07/2009' as Datetime) between datefrom and dateto
预期产出:
code value
211 200
上面的查询显示空值,它应该返回200
我的查询有什么问题?您的演员阵容('02/07/2009'作为日期时间)
默认为您带来2月7日
用这个代替
SELECT Code, Value
FROM table1
Where
Period = '07/2009'
and Code = '211'
and CONVERT(DATETIME, '02/07/2009', 103) between datefrom and dateto
但是
如果列为varchar类型,您可能也必须将datefrom
和dateto
列转换为。选择代码、值
SELECT Code, Value
from table1
where Period = '07/2009'
and Code = '211'
and DateFrom <='02/07/2009'
and DateTo >= '02/07/2009'
来自表1
其中期间='07/2009'
代码='211'
日期从='02/07/2009'
您可以使用以下查询
SELECT code
, value
FROM table1
WHERE period = '07/2009'
AND code = '211'
AND convert(datetime,'02/07/2009',101)
between
convert(datetime,datefrom,101) and convert(datetime,dateto,101)
您的列是datetime还是varchar?您可以尝试在where子句中使用'YYYYMMDD',以确保SQL Server不会混淆什么是月,什么是日。能否发布表的架构,以便我们了解数据类型?我假设代码和值是varchar对的?错的!需要从英国格式转换字符串日期。查询是一样的,除了select LIST中的Code列我想是2月7日:-),如果这些列有datetime值(而不是字符串),则不需要转换这些列@HansKesting是的,错过了关于日期的内容,但已经写了关于列8-)