日期:2014-05-17  浏览次数:20643 次

sql 语句
select count(*) times from bt_valid_log where convert(varchar(10),times,121) between '2011-05-05' and '2011-08-08'我想在这个语句上加一个条件 room=‘机房’这样的 该咋家呢?
select count(*) times from bt_valid_log where room=‘机房’and convert(varchar(10),times,121) between '2011-05-05' and '2011-08-08'不正确。谢谢!

------解决方案--------------------
select count(*) times from bt_valid_log where room=‘机房’and ( convert(varchar(10),times,121) between '2011-05-05' and '2011-08-08')这样试试呢
或者换成>= <=
------解决方案--------------------
count(*) times
与 
convert(varchar(10),times,121)
一个别名,一个表字段,同名了,把count(*)的别名用其他的试试
------解决方案--------------------
探讨
count(*) times

convert(varchar(10),times,121)
一个别名,一个表字段,同名了,把count(*)的别名用其他的试试

------解决方案--------------------
个人认为count(*)查出来就一条,而times查出来是多条,对应貌似有问题
------解决方案--------------------
1.你原来的语句可以执行吗?如果可以,新增的SQL语法上是没问题的
可能的问题
1)没有room字段
2)你机房的单引号会不会是全角的?改‘’为''(至少贴子上是如此)
2.原来的不能执行,请贴出错误码


------解决方案--------------------

原因:引号错误。 注意'机房'
select count(*) times from bt_valid_log where room='机房' and convert(varchar
(10),times,121) between '2011-05-05' and '2011-08-08'不正确。谢谢! 

------解决方案--------------------
如下: 注意引号问题~~
SQL code

select count(*) times from bt_valid_log where room='机房' and 
convert(varchar(10),times,121) between '2011-05-05' and '2011-08-08';

------解决方案--------------------
你用我9L那代码去查, 报的错误贴出来看下~~
------解决方案--------------------
数据库此表 脚本贴出来看看~~~~
------解决方案--------------------
按照你写convert(varchar(10),times,121)判断你数据库times 是datetime类型吧,就使用下面的吧
SQL code

select count(*) times from bt_valid_log where room='机房' and times between "2011-05-05 00:00:00" and "2011-08-20 23:59:59";