我在我的应用程序中有一个输入字段,它通过日期选择器接受日期。有时用户不选择任何日期,他们可能会提交空白(客户端要求),因为这不是一个强制字段。
空白提交后,存储在SQL Server 2008数据库中的数据为“1900-01-01”。相反,我需要将数据存储为'NULL'或'empty'或'0000-00-00',而不是任何其他有效的日期格式。
如果<代码>请求。getparameter()为空,我试图插入“0000-00-00”。但它正在阻止插入。
我的目标是在用户提交空白字段时插入“NULL”或“--”或“900-00—00”。而不是“1900-01-01”。
不幸的是,SQL服务器将空白(即空字符串)解释为值为1900-01-01的日期。因此,当您编写:
insert into t (datecol)
values ('');
这基本上被编译成:
insert into t (datecol)
values ('1900-01-01');
你能做什么?最明显的是不要插入空白值。要插入NULL
,请插入NULL
。在这种情况下,可以使用NULLIF()
:
insert into t (datecol)
values (nullif('', ''));
这将把输入转换为适当的值。
第二个选项是使用检查约束拒绝此类值:
alter table t add constraint chk_t_datecol
check (date >= '1950-01-01');
也就是说,日期在某种可接受的范围内。
第三个选项是添加一个触发器,在输入时将'1900-01-01'
转换为NULL
值。
第四种选择是允许这些值,但使用计算列作为参考:
alter table t add datecol_good as ( nullif(datecol, '1900-01-01'));
所有这些选项都假定'1900-01-01'
不是您希望在数据中出现的有效日期。
我创建了一个jquery DatePicker。我希望用户选择大于或等于当前日期的日期,所以我使用了。这将禁用所有以前的日期。 但是,通过输入字段,用户可以键入上一个日期。如何禁用输入字段而不禁用DatePicker?
问题内容: 我有ASP经典页要在表中插入记录。我正在为5个字段使用表单元素。[ABC]([code],[updatedate],[flag],[Mfdate]。当用户未选择Mdate时,使用日期控件在Mdate中获取用户选择的日期,该查询在我的ASP中形成页面如下 在SQL Server中运行时,它将插入日期,但用户尚未选择任何值。 为什么会这样呢? 为数据类型是。 问题答案: 您尚未将其指定为n
问题内容: 如何在MySQL中使列的默认值等于当前日期+ 30天?例如,如果当前日期为10-1-2011,则必须将列值插入为9-2-2011。 问题答案: 如果您使用的是MySQL> = 5.0,请使用触发器: 当您插入时,触发器将激活,设置为现在+ 30天。如果您的插入内容设置了日期,由于,它将覆盖该默认值。日期是使用计算的。
问题内容: 我在将日期正确插入数据库中时遇到问题。 我使用这种格式,并且正确回显,但是,当我插入 它似乎无法成功运行,时间仍然是00:00:00,如果您能找到很好的解决方案,谢谢。 问题答案: 如果要存储当前时间,请使用MYSQL的函数。 如果需要使用PHP进行格式化,请尝试
null 所以我面临一个问题,如果打开,等待输入,如何停止它?我尝试过将它放在线程中并或使用作为标志,但它并没有停止
问题内容: 用户停止键入时需要执行搜索。我知道我应该使用 setTimeout() 。但是使用 Reactjs我找不到它是如何工作的。 有人可以告诉我当用户停止键入几秒钟(假设为5)时如何调用方法(将处理Search)。我不知道该在哪里编写代码来检查用户是否停止键入。 我想在用户停止键入时调用sendToParent方法。 问题答案: 您可以按照以下方式使用您的代码, 另外,您需要在构造函数中绑定