这不好算SQL的问题
其实这是日期的表示必须要'',比如
SELECT DHHM, SLRQ, XFRQ, ZJMC FROM dbo.TDLS WHERE SLRQ>='2003-01-01' and SLRQ>='2003-07-01'
你把cast去掉也可以的
但cast没有''可不行
比如cast(2003-01-01)as datetime 这是不合语法结构的.
其实这是日期的表示必须要'',比如
SELECT DHHM, SLRQ, XFRQ, ZJMC FROM dbo.TDLS WHERE SLRQ>='2003-01-01' and SLRQ>='2003-07-01'
你把cast去掉也可以的
但cast没有''可不行
比如cast(2003-01-01)as datetime 这是不合语法结构的.
假如你不加的话就会出现如cast(2000-01-01 as datetime)看看还能显示什么!
加上cast('2000-01-01' as datetime) 看显示的是什么!
2000-01-01 00:00:00.000
select cast(2000-01-01 as datetime)
1905-06-22 00:00:00.000
呵呵~~~,我是给hjb111(苦行僧)打杂的。
Replace(Recordset1__str, "'", "''")传递到处理过程中的是经过处理的最终结果而不是传递过去后再处理的
程序中的变量和数据库(SQL SERVER)中的变量程序中的变量是在你的程序中定义的,也只能在你的程序中使用的.数据库中定义的变量,是在数据库中定义的,也只能在你的数据库中使用的.在程序和数据库中交换的数据,只能是按值传递的,不可能传递变量地址.
所以,在程序中执行SQL语句,调用存储过程,函数,我们能传递的参数,只能是具体的值,不能是某个变量的地址.举个例子:
程序中定义了字符变量:m_name 并赋值为'张三'
在程序中要执行查询,查询<姓名>为'张三'的记录
正确的查询语句写法是:"select * from 表 where name='" & m_name & "'"
当你执行查询的时候,SQL 服务收到的查询请求为"select * from 表 where name='张三'"
所以可以正确.错误的查询语句写法是:"select * from 表 where name=m_name"
在这种写法下,SQL 服务收到的查询请求为"select * from 表 where name=m_name"
这时候,SQL 服务器就会去找 m_name ,但因为程序和SQL SERVER都是独立执行的,SQL 不可能到你的程序中去找 m_name,所以会找不到,就提示出错.