is not a valid smalldatetime..

ajige 2011-03-06 04:57:17
我在数据库里的一个字段delcaretime是smalldatetime类型的。
当需要从前台的一个edit输入一个时间,然后存储到数据库中时,我是这样写的:
adoquery1.fieldbyname['declaretime'].asstring=edit1.text;
其中edit1中时间的格式是2010-01-01。
以这样的时间格式存储时,在一台电脑A的数据库上是没有问题的,可以成功的录入数据库。
但是同样的代码换到另一个电脑B的数据库上时,就会报错,提示:
2010-01-01 is not a valid smalldatetime.
请问一下, 这是为什么呢?
后来,我把edit1中时间的格式改成了2010/01/01,此时,在B上可以成功的录入,但是在A上又会提示 2010/01/01 is not a valid smalldatetime.
请问这样的问题如何解决???
...全文
111 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzworinima 2011-03-17
  • 打赏
  • 举报
回复
在别的帖子,竟然看不起,出身不好的程序员,叫那人滚回学校去,可恶!
bzworinima 2011-03-17
  • 打赏
  • 举报
回复
晕,又看见(失踪的月亮),一堆勋章,5星级, 连个可行的方法都提不出,CSDN 竟然养这样的人当版主,我吐....
bzworinima 2011-03-17
  • 打赏
  • 举报
回复

在控制面板->区域和语言选项->自定义...

楼上修改用户电脑设置的方法不好,用户要是改回了,程序不是又坏了,要从代码上实现兼容性

这是一个取时间差的函数,原先的StrToDateTime 运行出错。

function GetSecondsBetween: LongInt;
var
settings: TFormatSettings;
tempDateTime: TDateTime;
begin
//n := SecondsBetween(now, StrToDateTime('1970-01-01 0:0:0'));
//兼容win2008以上系统
Getlocaleformatsettings(Getuserdefaultlcid, settings); //Getuserdefaultlcid 从WINDOWS获取本地区位信息
settings.dateseparator := '-';
settings.timeseparator := ':';
settings.shortdateformat := 'yyyy-MM-dd';
settings.shorttimeformat := 'hh:mm:ss';
tempDateTime := strtodatetime('1970-01-01 0:0:0', settings);
Result := SecondsBetween(now, tempDateTime);
end;
还是江筱吧 2011-03-13
  • 打赏
  • 举报
回复
format是个好习惯,要不本地环境设置不同,能愁死你,确保传入的数据都是经过你自己处理的,别整什么默认,不好
「已注销」 2011-03-11
  • 打赏
  • 举报
回复
对datetime字段使用asString的方式赋值不妥当。
lw19860412 2011-03-11
  • 打赏
  • 举报
回复
试试将日期format一下
huangheguyun 2011-03-09
  • 打赏
  • 举报
回复
试试将日期format一下
wsxcdx 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinoalex 的回复:]

具体在控制面板->区域和语言选项->自定义...
[/Quote]up,
hongqi162 2011-03-09
  • 打赏
  • 举报
回复
试试将日期format一下
kye_jufei 2011-03-08
  • 打赏
  • 举报
回复
有可能是本地日期格式問題,也可以用formatdatetime('yyyy/mm/dd',日期)來處理。。
ajige 2011-03-07
  • 打赏
  • 举报
回复
谢谢~~
renran0320 2011-03-06
  • 打赏
  • 举报
回复
两台电脑的日期格式不一样。你肯定是调用win API得到的系统日期。

方法上面已经给出了。




-------C--------S---------D---------N---------自--------制--------签---------名-------
Delphi超级乐园【二】88391456(此群火爆申请中)点此加入该群
dinoalex 2011-03-06
  • 打赏
  • 举报
回复
具体在控制面板->区域和语言选项->自定义...
dinoalex 2011-03-06
  • 打赏
  • 举报
回复
修改本地的短日期格式看看

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧