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