大送分!!!SQL SERVER 日期字段的怪问题!!!(200分)

  • 主题发起人 主题发起人 eyu
  • 开始时间 开始时间
E

eyu

Unregistered / Unconfirmed
GUEST, unregistred user!
自从程序从PRORADOX 移植到SQL SERVER 后,
通过 TABLE 输入日期时报错: Translate error.value out of bounds.
我是通过第三方控件DBDATEEDIT 输入的,
后来改为手写,table.fieldbyname(**).asdatetime:='2000-12-13'
等等,都不行,
救救我!!!!!!!!
 
使用函数转化一下 table.fieldbyname(**).asdatetime:=strtodate('2000-12-13');
可以适应不同的系统设定(yyyy/mm/dd,yyyy-mm-dd)
 
可以用青衣的方法,我在程序中就是这样做的,如果你要用控件输入的话建议用ipfopower
中的wwdbdatetimepicker,它不但具备了datetimepicker的功能而且有
wwdbdatetimepicker.text属性
 
最好在SQL里用Update语句这么写——Convert(datetime,"2000-12-13",20)
看着麻烦些,但不会出错。因为本地的时间格式和数据库服务器里设置的不一定相同,
在SQL里指定日期格式(20)并以该格式传递日期值更保险。
 
用table.fieldbyname(**).asString:='2000-12-13',Server会自动转换
 
我认为bq的方法也是挺好的,青衣的方法有点问题,就是如果在区域设置中使用的短日期
格式为'm/d/yy'的话,strtodate('2000-12-13')会报错,不过可以加入如下语句解决:
dateseparator:='-';
shortdateformat:='yyyy-mm-dd'

 
该说的都说了。不过,大富翁里这样的帖子很多的,建议查一下。
 
该说的都说了。不过,大富翁里这样的帖子很多的,建议查一下。
 
将TABLE的字段删除,再重建该字段,应该就可以了。
DELPHI的刷新不太好。
 
虽然很土,可很实用,我自己也是这样解决的。可还得给分,心痛啊。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部