如何在MySQL中插入空白的日期/日期时间或占位符而不恢复为空白字符串?

时间:2019-02-25 15:08:01

标签: c# mysql date datetime mariadb

我正在做一些SQL工作的一家公司遇到了为Unix服务器创建的某些专有软件的问题。他们在Windows服务器上使用它,并导致1个问题,该问题是该软件的致命错误。这是一家收款公司,帐户上有数十个日期。某些日期是必需的(例如,开放日期和注销日期),但是有些日期或日期时间字段为空,因此上传时为NULL。设置软件后,每次尝试在软件中执行任何操作时,都会弹出以下错误:

'' is not a valid date in the lastpaymentdate DATETIME column

它已将NULL(此字段中此特定帐户的无日期)转换为空白字符串,因此我在该列中放置了一个占位符日期,然后出现如下错误:

'' is not a valid date in the firstvisit DATE column

所以现在我知道我要面对什么了。该软件要求所有日期均为NULL或在其中包含正确格式的日期,才能真正执行任何操作。该软件对该错误几乎没有用。

更改空白date / datetime列NULL仅会转换为空白字符串,从而使软件崩溃。

因此,我与创建软件的代理商联系,询问他们是否也存在此问题。有人告诉我他们插入:

0000-00-00 or 0000-00-00 00:00:00

为防止这种情况发生。

我尝试了一下,但没有成功。我花了很长时间才知道为什么,但是创建该软件的公司使用的是Unix服务器(可能是PostgreSQL或MySQL 10或稍有不同的东西)。

我最终能够找到一个临时修订并输入:

1900-01-01 or 1900-01-01 12:00:00

,一切正常。唯一的问题是1900-01-01 / 12:00:00不正确,并导致合规性问题。因此,这是一个临时解决方案,但不是一个好的解决方案。它与数据库中实际存在的日期太相似。

所以我需要找到可以用作占位符的东西除1900-01-01 12:00:00和0000-00-00 00:00:00之外都将无效,也不会为NULL。

如果有任何区别,可以用C#编写软件。

0 个答案:

没有答案