c# - 如何在 MySQL 中插入空白日期/日期时间或占位符而不恢复为空白字符串?
问题描述
我正在为其做一些 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 或在其中包含正确格式的日期,以便真正执行任何操作。该软件对这个错误几乎没有用。
更改空白日期/日期时间列 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# 编写的,如果这有什么不同的话。
解决方案
推荐阅读
- python - Holoviews - 如何从数据框列创建并排条?
- python - 在 Python 中,空格对于编码变量 = 4 + 5 是否重要,或者将其编码为变量 = 4+5 是否可以?
- ios - 优化片段着色器
- java - 在 Java 库中,lotus.domino.Session 类方法 createDateTime() 抛出 NullPointerException
- spring - 我需要帮助类“.......”在 spring-mvc 项目中找不到
- python-3.x - 如何组合网页段落(来自包含 url 的文本文件)?
- azure-data-factory - Azure 数据工厂的 API 访问
- c# - 为什么错误显示“ArgumentException:索引超出范围”。当我在 Unity 中获得触摸增量位置时?
- python - 预测 sciklearn ValueError 的问题:操作数无法与形状一起广播
- python - python:object()不带参数