社区
数据库相关
帖子详情
关于动态查询中的字符串匹配问题
fangweng1937
2003-08-26 02:28:48
本人在做时间查询时使用sql中的字符串部分匹配符号%,相关代码如下:
Query1.SQL.Add(' where 时间 LIKE "(:time)%" ');
Query1.ParamByName('time').asdatetime:= strtodatetime(Edit1.text);
可是由于(:time)%两边的引号,编译时找不到time参数了.
将引号去掉可以传入参数,可是不符合sql语法了.
不知哪位能出个高招,解决下.不胜感激!
...全文
40
13
打赏
收藏
关于动态查询中的字符串匹配问题
本人在做时间查询时使用sql中的字符串部分匹配符号%,相关代码如下: Query1.SQL.Add(' where 时间 LIKE "(:time)%" '); Query1.ParamByName('time').asdatetime:= strtodatetime(Edit1.text); 可是由于(:time)%两边的引号,编译时找不到time参数了. 将引号去掉可以传入参数,可是不符合sql语法了. 不知哪位能出个高招,解决下.不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sy_315
2003-08-27
打赏
举报
回复
Query1.SQL.Add(' where 时间 LIKE '+:time+'+% ');
guanghui
2003-08-27
打赏
举报
回复
举一例:
如你要查询日期为"2003-08-05"的记录的时候
定义三个字串变量假设为Nian、Yue、Ri,分别对应年、月、日(也可以为一个,慢慢加起来)
分解该日期到这三个变量中
而根据SQL Server自动转换后的格式(我的是中文版,也许其他版的会有所不同)
可以知道,我们需要将日期按“月%日%年%”的样式拼凑起来就OK了,
拼凑就是
Nian:=Yue+'%'+Ri+'%'+Nian+'%';
按理,这时能找出符合我们要求的记录了,但真的如此吗?
留意一下“日”部分,我们可以发现单个数的时候,SQL Server将不自动给他分配0在前面
而如果我们统一这样查询,那"2003-08-15"的记录(如果存在的话)也会被查询出来。
这个问题,其实也可以解决,留意一下,实际上转换后的日期的长度是一样的,
月两位,日两位,月与日之间一位空格,只要我们在中间不加通配符,直接加空格,且判断转换后的
“日”的位数,不够两位自动补空格,就OK
当然,这是我的笨方法,我建议不这么用,我更喜欢用between BeginDate and EndDate
fangweng1937
2003-08-26
打赏
举报
回复
“拼凑好字符串的样式”?问题就出在这里,不知道怎么拼凑啊
guanghui
2003-08-26
打赏
举报
回复
就算不报错又怎么样呢,当你使用LIKE=’YYYY-MM-DD%’去执行的时候,SQL SERVER将把表中的日期类型转成字符串看了,于是,本来是‘2003-08-05 00:00:00.000’,转换以后变成’08 5 2003 12:00AM’,你的LIKE还能起作用吗?(能当然能,但你还得告诉用户按转换后的格式输入)
其实,对于日期常用的就是“BETWEEN BDATE AND EDATE”,直接用DATETIMEPICKER控件;如果你确实想方便客户(他想模糊查询),那就建议你在程序中去拼凑好字符串的样式,再去LIKE
fangweng1937
2003-08-26
打赏
举报
回复
还是不行啊,我的时间类型是datetime的,和string类型的总是不匹配的.
看来只有把时间类型改成string了……
answermyquestion
2003-08-26
打赏
举报
回复
说掉了,在楼上 foreveryday007(有無數種方法可以浪費一天的時間…但是…)兄弟
的基础上变为以下试试。
Query1.ParamByName('time').Asstring:= '''' + Edit1.text + '%' + '''';
answermyquestion
2003-08-26
打赏
举报
回复
如果在数据库中如:MS SQLSERVER有一个表的一个字段为日期型,你用以下语句插入
insert into TableName(DateFieldName) values(1981-02-34)将出错
而这样的话就可以了,所以你知道该怎么对待日期型了吧!
insert into TableName(DateFieldName) values('1981-02-34')
fangweng1937
2003-08-26
打赏
举报
回复
时间是datetime类型啊,楼上说的几种好象都不大行.参数是编译完所有语句再加的,所以把语句拆开写好象没什么用.楼上的方法倒能输入参数,就是类型不匹配了.
foreveryday007
2003-08-26
打赏
举报
回复
Query1.SQL.Add(' where 时间 like :time ');
//时间是什么类型?STRING吗?
Query1.ParamByName('time').Asstring:= Edit1.text + '%';
Shiyl
2003-08-26
打赏
举报
回复
这么写 Query1.SQL.Add(' where 时间 LIKE '''+(:time)+‘%’+'''');
Query1.ParamByName('time').asdatetime:= strtodatetime(Edit1.text);
试试
fangweng1937
2003-08-26
打赏
举报
回复
lihao_ningxia(耗子):
能不能讲具体点?不是太明白那句代码加在哪里呢?
frogshero(光棍菜):
你的方法好象不行啊,他还是说%的使用不合法.
有劳二位了!
frogshero
2003-08-26
打赏
举报
回复
去掉引號:
Query1.ParamByName('time').asstring:= datetimetostr(Date);
上海老李
2003-08-26
打赏
举报
回复
呵呵,可以这样啊:
query1.sql.add(' );
这样就会象 where 时间 LIKE '+2003-08-26%'
算法导论(正宗
中
文第三版)3-1
在有关算法的书
中
,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。... 修改了对knuth-morris-pratt
字符串匹配
算法的讨论。 新增100道练习和28道思考题,还更新并补充了参考文献。
200个经典C程序【源码】
172 删除字符串
中
的特定字符 173 求解符号方程 174 计算标准差 175 求取符合特定要求的素数 176 统计符合特定条件的数 177 字符串倒置 178 部分排序 179 产品销售记录处理 180 特定要求的字符编码 181 求解...
字符串匹配
python
字符串匹配
是Python
中
一个非常重要的
问题
,在实际开发
中
经常会遇到。Python提供了多种方式来实现
字符串匹配
,包括正则表达式、字符串方法、字符串模板等。
字符串匹配
是计算机科学
中
一个重要的
问题
,也是实际应用
中
...
字符串匹配
算法综述
字符串匹配
算法,是在实际工程
中
经常遇到的
问题
,也是各大公司笔试面试的常考题目。此算法通常输入为原字符串(string)和子串(pattern),要求返回子串在原字符串
中
首次出现的位置。比如原字符串为“ABCDEFG”,...
带通配符的
字符串匹配
问题
的
动态
规划算法
字符串匹配
问题
,给定一串字符串,按照指定规则对其进行匹配,并将匹配的结果保存至output数组
中
,多个匹配项用空格间隔,最后一个不需要空格。 要求: 1. 匹配规则
中
包含通配符?和*,其
中
?表示匹配任意一个字符,*...
数据库相关
2,497
社区成员
88,445
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章