VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1046|回复: 5

HELP

[复制链接]

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-10 16:00:02 | 显示全部楼层 |阅读模式
String si,SubStr,name;
   si=DateToStr(Date());
   SubStr=si.SubString(5,StrToInt(si.Length()-2));/*取出生日期的月和日*/
   data->personquery->Close();
   data->personquery->SQL->Clear();
   data->personquery->SQL->Add("select * from perinf where birthday like '%"+SubStr+"%' ");
   data->personquery->Open();
   if(data->personquery->RecordCount!=0)
{ while(!data->personquery->Eof)
    {
     name=data->personquery->FieldValues["name"];
     data->personquery->Next();
     }
   ShowMessage("今天是'"+name+"'的生日,快去送上祝福吧!");
}查询不到结果,可能是sql语句有问题。请各位指教,该如何写

回复

使用道具 举报

0

主题

15

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-6-6 05:30:01 | 显示全部楼层
可能是你在取出生月和日的时候取到的数字是2017-1-5中的“-1-5”。
这样改一下:
si=Date().FormatString("yyyymmdd");
这样取出来的数据是出生月和日是“0105”。
StrToInt(si.Length()-2);'//这里不需要StrToInt,si.Length()是int类型的。
回复

使用道具 举报

0

主题

11

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-6-8 01:00:01 | 显示全部楼层
关于日期时间确实很难把握啊!
最好还是先知道你数据库中的日期时间是什么格式的,然后在用FormatDateTime()格式化你获得的当天日期,获得月和日的信息.
至于SQL语句,如果你的birthday字段是短日期格式的,写成 LIKE '____-"+strMonth+"-"+strDay+"' 可能会比较好点
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-10 21:00:01 | 显示全部楼层
很感谢二位的关注,不过希望写的详细点,两种方法我都试过了,记录还是0。譬如第一个如果我取出了0105,sql语句又如何写。我库里的格式是2016-1-5这种格式的。谢谢。很急
回复

使用道具 举报

0

主题

11

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-5 20:45:01 | 显示全部楼层
不好意思,下面是正解:(适用于SQL Server,Access等MS数据库)
AnsiString SssMonth=FormatDateTime("M",Date());  //获取今天的月
AnsiString SssDay=FormatDateTime("d",Date());    //获取今天的日

AnsiString SQLStr="SELECT * FROM perinf WHERE (MONTH(birthday) = "+SssMonth+") AND (DAY(birthday) = "+SssDay+")";

......

data->personquery->SQL->Add(SQLStr);

......

省略的地方你自己已经写出来了
回复

使用道具 举报

0

主题

11

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-5 21:15:01 | 显示全部楼层
你的数据库中birthday字段必须是DateTime日期型
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表