急救啊,我想把DateTimePicker1.Date写入数据库表的一个为datetime类型的字段中去应怎么写?(20分)

  • 主题发起人 主题发起人 xbbtzhao
  • 开始时间 开始时间
X

xbbtzhao

Unregistered / Unconfirmed
GUEST, unregistred user!
急救啊,我想把DateTimePicker1.Date写入数据库表的一个为datetime类型的字段中去应怎么写?<br>入职日期:为日期型字段。<br>ADOQuery1.SQL.Add('insert into userdb (编号,姓名,入职日期)values('''+trim(Edit1.Text)+''','''+trim(Edit2.Text)+''',''+DateTimePicker1.Date+'');<br>应怎么写才正确?
 
uses dateutils;<br>quotedstr(datetimetostr(DateTimePicker1.datetime))
 
SqlStr := 'insert into userdb (编号,姓名,入职日期)values('''+trim(Edit1.Text)+''','''+trim(Edit2.Text)+''',convert(datetime,''FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)+'');<br><br>试试.
 
需要把类型转换一下
 
ADOQuery1.SQL.Add('insert into userdb (编号,姓名,入职日期)values('''+trim(Edit1.Text)+''','''+trim(Edit2.Text)+''','''+formatdatetime('yyyy-mm-dd',DateTimePicker1.Date)+'''');
 
转为字符串再写
 
用参数吧:<br>adoquery1.sql.text:='insert into xxx(xxx,...) values(:temp1,...)';<br><br>adoquery1.Parameters.ParamByName(temp1').Value:=FormatDateTime('yyyy-mm-dd',now);
 
不同的数据库对日期格式要求不同,同一数据库会话里还可以设置日期格式(比如ORACLE),用参数最稳妥。
 
同意WickedladII的,转换成string再写到数据库中
 
楼上的兄弟,写oracle的时间的字符串和写access的时间的字符串是不一样的,而且,ORACLE中还可以把会话的时间格式改变,所以,转换为字符串是可以,但得先了解清楚格式,还有个问题,如果换数据库,所有的时间格式得重写。使用参数是最稳妥的。
 
楼上的讲的很清楚了<br>时间部分条件 参考现面代码段 <br> ShortDateFormat := 'YYYY-MM-DD';<br> &nbsp;st_date:=datetostr(DateTimePick_From.Date);<br> &nbsp; <br>case FSQLType of<br>DT_Oracle:<br> &nbsp; begin<br> &nbsp; st_f:= 'to_date('''+st_date+''',''YYYY-MM-DD'')';<br> &nbsp;<br> &nbsp; end;<br>DT_SQLSever:<br> &nbsp; begin<br> &nbsp; st_f:= 'CONVERT (datetime, '''+st_date+''' , 102)';<br> &nbsp;<br> &nbsp; end;<br>DT_Sybase:<br> &nbsp; begin<br> &nbsp; st_f:= 'CONVERT (datetime, '''+st_date+''' , 102)';<br> <br> &nbsp; end;<br>DT_DB2:<br> &nbsp; &nbsp;begin<br> &nbsp; st_f:= CONVERT (datetime, '''+st_date+''' , 102)';<br> <br> &nbsp; &nbsp;end;<br>DT_Access:<br> &nbsp; &nbsp; begin<br> &nbsp; st_f:= 'DateValue(&quot;'+st_date+'&quot;)';<br> &nbsp; &nbsp; &nbsp;end;<br> &nbsp;end;//end case
 
ADOTable2.FieldValues['返还日期'] := DateTimePicker1.Date;
 
关键还是看你要写入的数据库中的时间格式,如果它是时间类型的就不能转换为字符串的形式进行插入操作,而且还要看数据库的时间的格式!
 
后退
顶部