请问如何插入一个null或空值到datetime字段中

大风吹过脸颊 2013-10-21 04:06:15
请问如何插入一个null或空值到datetime字段中?原因很简单,见以下代码,不想用两个sql.text的方式,因为这个代码可能有三十多个字段,会非常长,所以只想判断其中一个参数。

with ADOQuery1 do
begin
close;
sql.CLear;
sql.text:='insert into UserInfo(UName,Usex,UDate)values(''张三'',''男'',:UDate)';

if CheckBox1.Checked then
Parameters.ParamByName('Udate').Value:=DateToStr(DateTimePicker1.Date)
Else
Parameters.ParamByName('Udate').Value:=Null; //关键处

ExecSQL;
End;
...全文
1644 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏雪无痕 2013-12-27
  • 打赏
  • 举报
回复
Parameters.ParamByName('Udate').Clear;
Wang-Ping 2013-11-28
  • 打赏
  • 举报
回复
6楼正解~~~~
Frank6600 2013-11-04
  • 打赏
  • 举报
回复
Null 是数据为空值; nil 是指标为空值;
zhangzhen_927116 2013-11-04
  • 打赏
  • 举报
回复
插入的时候不赋值就是NULL了。或者直接给nil也是空。Delphi里面空值好像有两个null,nil 我也不是很清楚这两个的区别
天外飞仙 2013-11-03
  • 打赏
  • 举报
回复
Parameters.ParamByName('Udate').Clear;
Frank6600 2013-10-25
  • 打赏
  • 举报
回复
第二个方法: 用SQL.Add拼SQL语句 其中,:UDate为单独一行 写成 if NULL Then SQL.Add('NULL,') else SQL.Add(':UDate,'); 同理,ParamByName时 if not NULL then ParamByName('UDate').Value:=DT值; 这样也行,虽然稍麻烦一点,还是比写二个text简单,也比写二个text弹性。
Frank6600 2013-10-25
  • 打赏
  • 举报
回复
如果是SQLServer 在 INSERT 代码中,用 NullIf(FieldName, DateTime值) 保护你想要写入 Null 的字段, 传入DateTime值,就会是Null了。 其他系统请换成相似语句。
孤独de猫 2013-10-24
  • 打赏
  • 举报
回复
插入的时候,不要给他传值就可以了。默认就是NULL
gencheng 2013-10-23
  • 打赏
  • 举报
回复
'insert into UserInfo(UName,Usex)values(''张三'',''男'')';
gencheng 2013-10-23
  • 打赏
  • 举报
回复
不插入哪个字段不就是空值了?

2,497

社区成员

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

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