sql-【SQL求助】用SQL Server查询语句中,IN 的使用问题。

问题描述

【SQL求助】用SQL Server查询语句中,IN 的使用问题。

我想查询一辆车在一个月内的记录。于是编写了如下代码:

select * from 北京车辆能耗数据.dbo.北京朝批商贸股份有限公司
where
(
[列 0] in ('京AC3537')
and CAST ([列 2] as datetime)>'2013/11/1 00:00:00'
and CAST ([列 2] as datetime)<'2013/12/1 00:00:00'
)

order by CAST ([列 2] as datetime) asc

上述程序执行起来是没问题的。

后来,我想一次性查询两辆车在一个月内的记录。
于是代码更改为:

select * from 北京车辆能耗数据.dbo.北京朝批商贸股份有限公司
where
(
[列 0] in ('京AC3537','京AC3563')
and CAST ([列 2] as datetime)>'2013/11/1 00:00:00'
and CAST ([列 2] as datetime)<'2013/12/1 00:00:00'
)

order by CAST ([列 2] as datetime) asc

这时就出问题了,错误提示:从字符串转换日期和/或时间时,转换失败。

请教各位,问题出在了哪里?

解决方案

问题应该在 cast 这,有些数据不能转成时间

解决方案二:

你只用京AC3563试试行不行?

select * from 北京车辆能耗数据.dbo.北京朝批商贸股份有限公司
where
(
[列 0] in ('京AC3563')
and CAST ([列 2] as datetime)>'2013/11/1 00:00:00'
and CAST ([列 2] as datetime)<'2013/12/1 00:00:00'
)

order by CAST ([列 2] as datetime) asc

如果报错同,则说明的确有部分列2的数据无法转换(对应京AC3563的)

解决方案三:

列出俩种方案,你可以试下
第一,将in改成 = 如下:[列 0] = '京AC3537' or [列 0] ='京AC3563')
第二,将后来添加的车牌数据换成其他的试试

解决方案四:

应该是 列2 的有些数据不能转换成时间。

解决方案五:

把时间去掉,先IN 再加时间

解决方案六:

语法上没有问题的,就看看京AC3563中数据有否可以全部都转化成datatime

解决方案七:

问题应该在 cast 这,有些数据不能转成时间

时间: 2024-10-03 06:11:01

sql-【SQL求助】用SQL Server查询语句中,IN 的使用问题。的相关文章

关于sql server查询语句的写法。

问题描述 关于sql server查询语句的写法. 怎样写一个查询语句select distinct ID from TrainTime order by ID select Station from TrainTime where S_No='1'order by ID select Stationfrom TrainTime where D_Time='-' order by ID 怎样把这3个查询语句写为一句啊,让查询查来的结果为这3列数据. 因为我想建一个表,为3列,列名为:列车车次.起

SQL Server定义视图查询语句中不能使用的关键字

(1) 不能够带有Into关键字 我们都知道,视图其实就是一组查询语句组成.或者说,视图是封装查询语句的一个工具.在查询语句中,我们可以通过一些关键字来格式化显示的结果.如我们在平时工作中,经常会需要把某张表中的数据跟另外一张表进行合并.此时,数据库管理员就可以利用Select Into语句来完成.先把数据从某个表中查询出来,然后再添加到某个表中.当经常需要类似的操作时,我们是否可以把它制作成一张视图.每次有需要的时候,只需要运行这个视图即可,而不用每次都进行重新书写SQL代码.不过可惜的是,结

SQL查询语句中的bool类型字段值的写法

  SQL查询语句中的bool类型字段值的写法 没有系统地看过SQL语句的写法说明,只是看了一些常用SQL语句的例子.今天写了条select * from table where sex='true',老是提示标准数据类型不匹配(我用的Access),检查了半天,原来sex字段作为bool(是/否)类型,在SQL语句中其值不需要用''引起来.

sql 对相对数据进行分组查询语句

sql 对相对数据进行分组查询语句 /* | section | province | area   | zone | postcode | cardtype                 | telco  | | 1879728 | 青海      | 共和         | 0974 | 813000   | 移动187卡                   | 移动   | | 1879741 | 湖南      | 长沙         | 0731 | 410000   | 移动1

select-SQLite查询语句中的count(*) 与getColumnIndex(&amp;amp;quot;count&amp;amp;quot;)

问题描述 SQLite查询语句中的count(*) 与getColumnIndex("count") 关键代码如下: int count = 0; SQLiteDatabase db = null; Cursor cursor = null; //执行创建数据库或是表的语句 db = openHelper.getReadableDatabase(); //执行通过用户名和密码的参数查询出用户,并保存在cursor中 cursor = db .rawQuery( "select

注意ADO。NET中数据查询语句中的符号格式(c#实现)

ado|数据|语句 1.通配符的使用 在ADO.NET中允许使用通配符进行数据查询.如下面语句查询表中EmployeeID以A开头的所有数据                Select EmployeeID,EmployName,Tel,Salary .....where EmployeeID='A%';     ADO.NET允许在字符串的开头或结尾使用%或*通配符.如下面语句查询表中所有单号尾为S的单据 Select productcode,productname,productsum,pr

link中写两个select是什么意思?是在link查询语句中,是联合查询么?

问题描述 link中写两个select是什么意思?是在link查询语句中,是联合查询么? link中写两个select是什么意思?是在link查询语句中,是联合查询么? 解决方案 笛卡尔积 比如 a=123 b=234 from x in a from y in b select x * y 输出 2 4 6 3 6 9 4 8 12

mysql-MYSQL 查询语句中含有逗号的问题。。

问题描述 MYSQL 查询语句中含有逗号的问题.. 数据库做了全文索引内容格式大概如下用语句搜索 UNION SELECT * FROM sed_data13 WHERE MATCH (content) AGAINST ('1234')返回的结果是 三条都有,因为都包含有1234.现在如果想搜索 1234 在尾部加个逗号,不知道在语句中怎么表达?因为在这个语句中,逗号就相当于多个条件了.谢谢大牛们帮忙! 搜索语句 解决方案 一些字符转义下.http://www.cnblogs.com/end/a

SQL Server查询语句运行指标值监测学习总结

前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问题,并且分析其优化方式. 通过本篇我们可以学习到调优中经常利用的几个利器! 废话少说,开始本篇的正题. 技术准备 数据库版本为SQL Server2008R2,利用微软的一个更简洁的案例库(Northwind)进行分析. 利器一.IO统计 通过这个IO统计能为我们分析出当前查询语句所要扫描的数据页的