SQL语句一直报无效数字的错,为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句一直报无效数字的错,为啥?相关的知识,希望对你有一定的参考价值。

select count(in_date) from car_goods_info where to_date(in_date,'yyyy-MM-dd HH24:mi:ss') between to_date('2014-04-25 00:00:00','yyyy-MM-dd HH24:mi:ss') and to_date('2014-04-25 23:59:59','yyyy-MM-dd HH24:mi:ss') group by to_char(in_date,'hh24');
in_date是varchar2类型的

SELECT COUNT(IN_DATE)
FROM CAR_GOODS_INFO
WHERE TO_DATE(IN_DATE, 'yyyy-MM-dd HH24:mi:ss') BETWEEN
TO_DATE('2014-04-25 00:00:00', 'yyyy-MM-dd HH24:mi:ss') AND
TO_DATE('2014-04-25 23:59:59', 'yyyy-MM-dd HH24:mi:ss')
GROUP BY SUBSTR(IN_DATE, 12, 2);
改成这样子,你最后又把IN_DATE当做date用了追问

好吧截取字符串就截取字符串吧- - 为什么会是乱序的?

追答

额 排序一下就行了晒
SELECT SUBSTR(IN_DATE, 12, 2),COUNT(IN_DATE)
FROM CAR_GOODS_INFO
WHERE TO_DATE(IN_DATE, 'yyyy-MM-dd HH24:mi:ss') BETWEEN
TO_DATE('2014-04-25 00:00:00', 'yyyy-MM-dd HH24:mi:ss') AND
TO_DATE('2014-04-25 23:59:59', 'yyyy-MM-dd HH24:mi:ss')
GROUP BY SUBSTR(IN_DATE, 12, 2)
ORDER BY SUBSTR(IN_DATE, 12, 2);
是字符串你还当做时间用,服你,实在要用,
TO_DATE(TO_DATE('2014-04-25 23:59:59', 'yyyy-MM-dd HH24:mi:ss'),'hh24')

参考技术A to_date(cdate(in_date),'yyyy-MM-dd HH24:mi:ss') 一下试试看追问

cdate是什么?

追答

日期格式化

追问

这样么?

追答

凡是有 in_date的地方都加 cdate()

为啥连接不到本机的mongodn数据库,总是报connect fail的错

为什么连接不到本机的mongodn数据库,总是报connect fail的错

Mongoengine是一个可以操作MongoDB数据库的对象-文档映射器(Object-Document Mapper)。出于工作需要,最近在使用MongoDB+Django实现一个数据录入系统小网站的过程中,出现通过Mongoengine无法从 Python 调用 MongoDB,在connect()数据库一步的时候出现下面错误:
>>> from mongoengine import connect
>>> connect(‘healthmanager‘)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 164, in connect
return get_connection(alias)
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 126, in get_connection
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
False is not a read preference.

其原因在于,通过“pip install mongoengine”安装的mongoengine为0.9.0版本,同时该命令把pymongo-3.0.2的模块依赖也装好了,而pymongo-3.0.2跟mongoengine-0.9.0之间存在兼容问题,从而导致默认的数据库无法connect成功。
>>> import pymongo
>>> pymongo.version
‘3.0.2‘

另外,CentOS 6.5下用“pip install pymongo”安装的pymongo为3.0.2版本,而mongoengine作为pymongo的一个扩展包,是没有安装的。因此在使用mongoengine的时候,安装完mongoengine后,需要降低pymongo版本至3.0以下。、

解决方法:
=> pip install mongoengine # 安装mongoengine
=> pip uninstall pymongo # 卸载pymongo-3.0.2
=> pip install pymongo==2.8 # 安装pymongo-2.8

重新connect:
>>> from mongoengine import connect
>>> connect(‘healthmanager‘)
MongoClient(‘localhost‘, 27017)
参考技术A 创建连接失败了 有可能是ip地址发生了变化

以上是关于SQL语句一直报无效数字的错,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中如何将字符类型转换成数字类型?

Oracle数据库执行查询语句报错:无效数字。

Oracle报错ORA-01722: 无效数字排查解决方案

sql无效字符 执行sql语句报错解决方案

无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE

sql语句报错,DB2 SQL Error: SQLCODE=-203, SQLST