关于从字段中截取月份的问题…………

zbc 2002-03-28 11:40:46
大家好, 我现在我有一条sql 语句如下:
sql = "select a.rq,b.* from a,b where (a.rq).SubString(6,2) = " + StrToInt(FormatDateTime("yyyy-mm-dd",Now()).SubString(6,2)) - 1;

上面的语句说明如下:
rq为日期字段数据库中的保存格式为yyyy-mm-dd;
我的目的是要取出这个字段的月份,在where 条件中 记录的月份 = 今天的月份 - 1(即上个月的月份),则出符合条件的记录, 不知道这样写错在什么地方???应该怎样写才对???
小弟非常急,肯请各位大侠出后相助我只有十分了, 我有分的时候一定给大家补上!!!!

...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbc 2002-03-28
  • 打赏
  • 举报
回复
对了, 我在补充一句上面的语句:
select a.rq,b.*,substring(convert(varchar,a.rq),6,2) as month from a,b 在设计期间设置在sql属性里面没有问题的
zbc 2002-03-28
  • 打赏
  • 举报
回复
我所用的数据库是sql server ,对于上面大家给出的方法,小弟也试过但还是不行, 我用下面的语句:
AnsiString S = FormatDateTime("yyyy-mm-dd",Now()).SubString(6,2);
//上面这条语句是可以得到正确的月份的,返回AnsiString类型
然后我用下面的语句:
select a.rq,b.*,substring(convert(varchar,a.rq),6,2) as month from a,b where month = \'" + S + "\'";
它给的出错信息是这样的(运行期时的出错):
invalid use of keyword:
token:varchar,a.rq),6,2)
我实在弄不明白, 我没有少括号呀

请各位大侠一定要帮我, 这真的很急的!
kingcaiyao 2002-03-28
  • 打赏
  • 举报
回复
SubString有些数据库并不支持,比如说:VFP数据库
where条件子句,左边是字符串,右边是整型。这样的where子名逻辑恒为假,取得的记录集恒为空。
Chimae 2002-03-28
  • 打赏
  • 举报
回复
试试这个:
1、SubString(a.rq,6,2);
2、Sql语句中SubString有些数据库不支持;
3、Where中你的类型不匹配!
cofa2000 2002-03-28
  • 打赏
  • 举报
回复
不同类型的相加出错
sql = "select a.rq,b.* from a,b where (a.rq).SubString(6,2) = " + StrToInt(FormatDateTime("yyyy-mm-dd",Now()).SubString(6,2)) - 1;
中的
StrToInt(FormatDateTime("yyyy-mm-dd",Now()).SubString(6,2)) - 1;
是整型
zbc 2002-03-28
  • 打赏
  • 举报
回复
感谢大家的参与,最后我找到问题啦!
那是因为我把sql语句传到了函数中, 那函数是别人写的, 我不知道他如何编写,最后我放在我的sql属性里面,稍微做了一些特别的设置,问题立马解决! 感谢大家的参与!
我不懂电脑 2002-03-28
  • 打赏
  • 举报
回复
你需要使用对方数据库支持的函数操作。

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧