«2019-02-25T09: 00: 00Z» означает «9 утра 25 февраля 2019 года, UTC ». Часть «Z» означает, что значение указано в UTC.
Вы создали два значения, представляющих один и тот же момент времени, но в двух разных часовых поясах - поэтому они будут иметь разные локальные значения, но оба они представляют один и тот же момент, поэтому разница между их равно 0.
Если вы хотите создать значение, которое представляет «9 утра 25 февраля 2019 года, в данном часовом поясе », то просто удалите Z. (Я не знаю, что делает момент, если значение вы Аргумент указать либо неоднозначен, либо пропущен из-за изменений смещения в часовом поясе, но это то, что вам следует изучить, если вы собираетесь делать это с произвольными данными.)
Насколько я могу судить, оба синтаксиса эквивалентны. Первый - стандарт SQL, второй - расширение MySQL.
Таким образом, они должны быть точно такими же по производительности.
http://dev.mysql.com/doc/refman/5.6/en/insert.html говорит:
INSERT вставляет новые строки в существующую таблицу. Формы INSERT ... VALUES и INSERT ... SET оператора вставляют строки на основе явно указанных значений. Форма INSERT ... SELECT вставляет строки, выбранные из другой таблицы или таблиц.
Я думаю, что расширение предназначено для того, чтобы разрешить подобный синтаксис для вставок и обновлений. В Oracle, похожий синтаксический трюк:
UPDATE table SET (col1, col2) = (SELECT val1, val2 FROM dual)