如何正确判断一个时间字符串啊?
比如说,我想让用户在一个输入框editInput里输入一个时间dtInput,
然后在SQL语句里用FDATETIME = dtInput,
我用StrToDateTime(editInput.Text)判断时,
如果用户输入的是1或2这样的数字,
用StrToDateTime(editInput.Text)判断的话,
是没有问题的,
但用FDATETIME = '1'时就会出现错误,
那这个怎么解决呢?
1对于系统来说,也认为是一个有效的时间,
但在SQL语句里就不行了。。。
怎么解决呢。。。
问题点数:50、回复次数:8Top
1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-16 22:03:26 得分 10
将Edit换成MaskEdit,设置Mask格式为DateTimeTop
2 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-16 22:09:12 得分 0
如果觉得界面还不够好,直接上TDateTimePicker,选择Kind属性作为Date or TimeTop
3 楼yuzhiyong(yuzhiyong)回复于 2006-03-16 23:07:39 得分 0
TryStrToDateTime(...)
好像是Top
4 楼dreammer(追寻梦中人)回复于 2006-03-17 23:38:31 得分 0
strToDateTime会把1认为是合法的时间啊。。。Top
5 楼liangqingzhi(老之)回复于 2006-03-18 00:16:40 得分 0
先用TryStrToDateTime判断合法性,再用FormatDateTime来转换Top
6 楼dreammer(追寻梦中人)回复于 2006-03-18 15:38:06 得分 0
用StrToDateTime来判断1的时候,DELPHI也会认为时间是:1899-12-30 01:00:00
我是想让系统认为1这个时间是不合法的。。。Top
7 楼SiTwo(闻之笑)回复于 2006-03-18 19:17:29 得分 0
那你就得再判断一下输入的时间是否在你限定的范围,如果不用DateTimePicker的话Top
8 楼secondlife(凤凰涅磐)回复于 2006-03-25 20:43:30 得分 40
那你直接这样:
try
editInput.Text := StrToDateTime(editInput.Text);
except
end;Top




