程序遇到问题了
我很奇怪,刚发了篇文字,提示404,你懂的,我蛋疼了,不懂...
这里重发下,估计是涉及什么敏感字眼了,所以标题起得很模糊,大牛勿见怪。
我现在碰到个奇怪的问题,没有得到解决:当我的月份或者日份是个位数时就查不到结果,否则就可以查到。我存储及查询时的时间格式也都是一样的,所以不明所以了。程序示例如下:
- C/C++ code
TDateTimePicker *dtpODate;TDateTimePicker *dtpIDate;AnsiString table_name, date_time;AnsiString buf1 = dtpODate->Time.DateString();AnsiString buf2 = dtpIDate->Time.DateString();char *sqlbuf = new char(512);//此处到底是该用字符串还是数组定义的好呢?呵呵我目前是选择数组了...sprintf(sqlbuf,"Select * from table_name.c_str() where date_time.c_str() between '%s' and '%s'",\ buf1.c_str(), buf2.c_str()); ///////Test:eg1: buf1 = "2011-8-19", buf2 = "2011-10-7". result1: No elements found. ------------------------------------------ eg2: buf1 = "2011-10-19", buf2 = "2011-10-12". result1: Can find the special data.
在数据库版本问了下,有大牛说我应该对其进行各转换,回复如下:
'2011-08-19' and '2011-10-07'.
这样的格式才对 不是的话需要转换
convert(varchar(10),cast('2011-8-19' as datetime),120)
//我查了下帮助,好像CB里面调用这个函数需要什么VCL头文件,可惜还是没找到,望各位大牛给予提示,3Q。
[解决办法]
删了好像补不回分去,不如你自己结帖。
[解决办法]
泄特啊,那几个帖子打不开,要么是服务器忙,要么是404,CSDN又开始抽风了。
[解决办法]
你那个存储时间的字段是会什么类型的?
[解决办法]
TEXT换成varchar/char
[解决办法]
跟你的当前的系统设置有关。