DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: li739139899
今日帖子: 7
在线用户: 0
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/14 19:54:18
标题:
请哪位大侠帮帮手,sqlite 如何按月统计,语法不知错在哪里 浏览:241
加入我的收藏
楼主: const strselect :='select * from Orders where strftime(''%m'', TaxDate) =''03''';

但是没有结果,不知道哪里问题,谢谢
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/14 20:20:32
1楼: 改为:onst
  strSelect = 'select * from Orders where strftime('+'%m'+', TaxDate) ="03"';

提示错误

【fireDac]{Phys][SQLite] errot:near "%":syntax error
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/14 20:21:20
2楼: 网上搜了谷歌,可惜找不到相关有人提过这个问题,拜托各位了
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2019/4/14 20:52:38
3楼: 1. 确认你的数据库里的确有3月的数据, 截图证明
2. 确认你的TaxDate的确是TEXT类型, 截图证明
3. 确认你的SQL执行了的确没有结果, 截图证明
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/14 21:13:33
4楼: taxDate  =开票日期
taxDate 是datetime 字段类型
此帖子包含附件:
PNG 图像
大小:11.9K
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/14 21:33:09
5楼: taxDate 字段改为 string(20) 类型,仍然出现同样问题,
此帖子包含附件:
PNG 图像
大小:14.8K
----------------------------------------------
-
作者:
男 pp0123 (pp0123) ▲▲▲▲▲ -
普通会员
2019/4/15 1:16:51
6楼: Order 好像是 SQL 的指令码
最理想的习惯是在任何 table 名字加上前缀。
----------------------------------------------
-
作者:
男 blacktulip (blacktulip) ★☆☆☆☆ -
盒子活跃会员
2019/4/15 8:59:05
7楼: 一般我们按月统计都是 这样写
select * from Orders where taxDate >= '2019-03-01' and taxDate < '2019-04-01'
----------------------------------------------
-
作者:
男 go_on (go_on) ★☆☆☆☆ -
盒子活跃会员
2019/4/15 15:22:58
8楼: 支持7楼方法,应该比转换字符串快
----------------------------------------------
www.eudn.cn工程师联合开发网
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2019/4/15 15:57:09
9楼: SELECT * FROM Orders WHERE taxDate BETWEEN '2019-03-01' AND '2019-04-01'?
----------------------------------------------
-
作者:
男 kaida (kaida) ★☆☆☆☆ -
盒子活跃会员
2019/4/15 16:00:35
9楼: const strselect :='select * from Orders where strftime(''%m'', TaxDate) = 3';
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/15 20:34:00
10楼: 非常感谢大伙的提示,经过测试解决了
@blacktulip (blacktulip)
@stacker (OOP才是王道)  的没问题一次搞定
@kaida (kaida)  =3  要给设定 '3'  

我采取如下:
strSelect = 'select * from tbl_Orders where strftime(''%m'', TaxDate) = ''03''';

谢谢

btw: 库中值是在firedac 输入,上面可行,可是发现另外一个问题来了,
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/15 20:41:36
11楼: 不过新问题出现了,我无法将 datetimepiakcer 的值插入sqlite库中,
日期字段 是datetime,
INSERT INTO tbl_Orders(TaxDate)values(DateTimePicker1.DateTime)
错误:invalid argument to date encode
----------------------------------------------
-
作者:
男 emsboy (emsboy) ▲▲▲▲△ -
注册会员
2019/4/15 20:57:38
12楼: 好吧,找到一位高手的经验,datetime 字段类型给位 datetime2 ,可以插入,都搞定了
谢谢
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行41.01563毫秒 RSS