|
|
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Всем привет, давно не вдавался в новости по MySql и MariaDb. Собственно сейчас вопрос по MariaDb, но возможно оно одинаково: Есть табличка с полем: .. `dtEnd` DATETIME DEFAULT NULL COMMENT 'уволен', .. NULL вставляется как положено, но при выборках вместо значения NULL получаю "0000-00-00 00:00:00". Сначала обнаружил это как результат из Yii2, небольшая трассировка его методов привела к выводу что в таком виде он получает данные уже из PDO драйвера.. .. почитал, в некоторых местах советуют проверять на эту строку и руками заменять на null .. не бред ли это? Поле специально объявлено как "NULL содержащее" .. или я что-то упустил и сильно? Нужен "оперативный ответ" на "что делать?" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 10:49 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109, никто не знает как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:08 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
А в базе-то что реально сохранено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:24 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
miksoft, NULL конечно же.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:26 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109, Пока (надо срочно) воткнул проверку на строку .. но это же явно БРЕД!!! что я делаю не так .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:28 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Вот так показывает phpstorm в своем окошке. .. Упс. А выборка из mySql> показывает эту строку .. щаз проверю вставку из консоли.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:34 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Беглый поиск показывает наличие параметра nullConversion у Yii. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:44 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109, Так, похоже что вставка работала некорректно. Пошел проверять. Такой запрос из консоли: UPDATE `svt_firm_person` SET `dtEnd`= NULL WHERE fpId=14; прописывает в поле NULL, который через консольный SELECT отдается нормально как NULL, Yii2 его тоже отдает как NULL. Проверил. Пошел смотреть запись.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 11:44 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109, Упс! Поле при сохранении записи не отдается на сервер и соответственно не участвует (не должно) в операторе INSERT INTO .. то есть в БД должно писаться дефолтное значение, а оно .. NULL. Нашел косяк, тему можно закрывать. Итого: Yii2 при записи с пустым значением поля, отдает в PDO .. пустую строку, которая для полей типа DATETIME воспринимается как неверное значение и соответственно приводится к "дефолтному" .. не, не тому которое указано для поля (NULL в данном случае) а некоторому "своему" для типа в целом - этой строке, она и прописывалась в БД. А "умный" ПХПшторм переводил это значение в то, что на картинке, вводя меня в заблюждение (ВОТ НАФИГА ТАК ДЕЛАТЬ?!?). Итого, "убил 3 часа на поиск проблемы и решения".. Исправил запись, что если на сервер пришло пустое значение - воткнуть в него принудительно запись NULL-я. .. блин, это сколько же теперь по всему проекту шерстить .. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 12:04 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
miksoftБеглый поиск показывает наличие параметра nullConversion у Yii.это не то, что нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 12:07 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109пустую строку, которая для полей типа DATETIME воспринимается как неверное значение и соответственно приводится к "дефолтному" Включите sql_mode в strict mode: https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-strict У mysql много странного поведения, в строгом режиме жить заметно попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 12:14 |
|
||
|
поле DATETIME и значения NULL
|
|||
|---|---|---|---|
|
#18+
miksoft, Не знаю, не смотрел ещё .. вышел покурить, а тут свет вырубили .. смотрю "что отвалилось" у Линукса. Не до этого вопроса стало "внезапно".. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 12:21 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39744209&tid=1829434]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 144ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...