ЗНАЧЕНИЯ таблицы MySQL INSERT INTO.. по сравнению с настольным приемником INSERT INTO

«2019-02-25T09: 00: 00Z» означает «9 утра 25 февраля 2019 года, UTC ». Часть «Z» означает, что значение указано в UTC.

Вы создали два значения, представляющих один и тот же момент времени, но в двух разных часовых поясах - поэтому они будут иметь разные локальные значения, но оба они представляют один и тот же момент, поэтому разница между их равно 0.

Если вы хотите создать значение, которое представляет «9 утра 25 февраля 2019 года, в данном часовом поясе », то просто удалите Z. (Я не знаю, что делает момент, если значение вы Аргумент указать либо неоднозначен, либо пропущен из-за изменений смещения в часовом поясе, но это то, что вам следует изучить, если вы собираетесь делать это с произвольными данными.)

240
задан Peter Mortensen 9 February 2010 в 08:57
поделиться

2 ответа

Насколько я могу судить, оба синтаксиса эквивалентны. Первый - стандарт SQL, второй - расширение MySQL.

Таким образом, они должны быть точно такими же по производительности.

http://dev.mysql.com/doc/refman/5.6/en/insert.html говорит:

INSERT вставляет новые строки в существующую таблицу. Формы INSERT ... VALUES и INSERT ... SET оператора вставляют строки на основе явно указанных значений. Форма INSERT ... SELECT вставляет строки, выбранные из другой таблицы или таблиц.

187
ответ дан 23 November 2019 в 03:19
поделиться

Я думаю, что расширение предназначено для того, чтобы разрешить подобный синтаксис для вставок и обновлений. В Oracle, похожий синтаксический трюк:

UPDATE table SET (col1, col2) = (SELECT val1, val2 FROM dual)
15
ответ дан 23 November 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: