Я перемещаюсь от бэкенда Доступа MS до MySQL. Это раньше работало, но теперь не делает и я не могу изобразить проблему.
<cfargument required="false" name="expiry" type="any" default="" />
<cfquery datasource='#arguments.dsn#'>
INSERT INTO users(expiry)
VALUES (<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP"/>)
</cfquery>
Поле базы данных установлено на дату и время и ПУСТОЙ УКАЗАТЕЛЬ по умолчанию
Аргумент заполняется от поля формы, которое или пусто, или JavaScript проверил дату. Это дросселирует на пустом formfield.
Прежде чем вы вмешиваетесь в настройки DSN, я бы также попытался изменить ваш
на следующее:
<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP" null="#len(arguments.expiry) eq 0#" />
Это передаст истинный ноль в том случае, если значением аргумента является пустая строка. .
Реализация драйвера JDBC для MySQL в CF не очень хорошо обрабатывает значения NULL.
Вам необходимо добавить флаг конфигурации в настройки строки подключения DSN (в расширенном режиме) в администраторе CF
& zeroDateTimeBehavior = convertToNull
Должны вас правильно настроить.
Роб