DateTimeToStr的使用注意

来源:互联网 发布:猴子吃桃问题c语言答案 编辑:程序博客网 时间:2024/04/29 15:59

有的时候可能需要将日期型的值转化为字符型保存,本人在一个软件的日志记录中,设计的日志表中有一项“日期时间”字段,长度为20个字符,本想像2005-04-22 18:53:00 这样的时间表示应该可以,于是在使用SQL 中的INSERT语句时是这样写的:'INSERT INTO 日志 (日期时间,动作,用户) VALUES (#'+DateTimeToStr(Now)+'#,调试,0000)',在本机调试的时候没有问题,可到客户那出现了不可预知的错误,然后就退出程序,由于客户那只有可执行的程序,一直想不出问题所在,后来才发现问题出在了DateTimeToStr函数上,由于本机上的操作系统日期和时间的表示格式就是 yyyy-mm-dd hh:mm:ss,所以转换不会有问题,不会超过20个字符,而客户机上用的是XP操作系统,日期格式是 yyyy年mm月dd日 下午 hh点mm分ss秒 于是乎转换后的值长度大于了20个字符,INSERT语句执行失败,引起未知错误的发生,后将转换函数换成 FormatDateTime('yyyy-mm-dd hh:mm:ss',Now)后问题解决.

看来DateTimeToStr的转换是关系到操作系统的设置的.

还有就是 BoolToStr /StrToBool函数了,在Delphi6中 BoolToStr(True)=1,而Delphi7中  BoolToStr(True)='True'了,还是值得注意的