我用的数据库是sql2005,服务器是windows2003,客户端都是xp系统,
现数据库里有一个表,其中有一个字段为createdate smaldatetime ,
我在DELPHI里给这个字段赋值为 now ;
我在数据库里查询到的格式是 : 2008/09/26 10:30:01 
其中一台电脑通过程序界面看到的格式为: 2008/09/26 上午 10:30:01 ,
但是其它电脑通过程序界面看到的格式为: 2008/09/26 10:30:01 ,所以,在程序界面按字段createdate 查询时,如果有"上午"的日期格式就会查询出错.
提示为 将字符串转换为 smalldatetime 数据类型时失败。
请问如何解决???

解决方案 »

  1.   

    提交数据时用参数,不要拼接sql
    或者规定所有客户端的区域选项都和服务器一致
      

  2.   

    那就麻烦一点,strtodatetime(Formatdatetime(now,'yyyy-mm-dd hh:nn:ss'))
    先格式化一下,统一标准,然后在转为日期型插入数据库
      

  3.   

    建议:重新审视对时间字段的处理,在读取和存储时都使用标准掩码YYYY-MM-DD mm:hh:ss进行格式化,这样才能避免混乱。
    通常情况下,除非是由数据库系统自己处理的时间字段(比如某个雇员人事记录的插入时间、更改时间)外,我们都使用字符串来存储时间,并在存储和显示时对其进行手工转换,这样可以实现较高的兼容性。
      

  4.   

    “其中一台电脑通过程序界面看到的格式为: 2008/09/26 上午 10:30:01 “出现这样的情况是这台机器中的系统日期格式设置的问题,可以用formatdatetime('yyyy-mm-dd hh:mm:ss',now())
      

  5.   

    1:正如上面所言,在控制面板修改
    2:可能为部分软件修改了时间,例如:优化大师这个东东,,
    3: formatdatetime处理了,,
      

  6.   

    这个刚研究过。
    http://blog.sina.com.cn/s/blog_40ac71670100b6o9.html而那个ModifyTime.reg里全部的内容。
    到 [HKEY_CURRENT_USER\Control Panel\International] 里去导出。目的是修改Client端的日期时间格式。
      

  7.   

    真的是日期格式的问题,在控制面版里把时间格式改为 HH:mm:ss 就可以了 .
    但是奇怪的是,这个客户端的时间格式本来就是 HH:mm:ss  ,我是把它改为 tt hh:mm:ss 后,再改回
    HH:mm:ss 才可以,郁闷 !