Как вставить пустую дату / datettime или заполнитель в MySQL, не возвращаясь к пустой строке? - PullRequest
0 голосов
/ 25 февраля 2019

Компания, для которой я работаю над 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 преобразуется только в пустую строку, которая приводит к сбою программного обеспечения.

Поэтому я обратился в агентство, которое создало программное обеспечение, и спросил, есть ли у них эта проблема какЧто ж.Мне сказали, что они вставляют:

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 #, если это имеет какое-либо значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...