Как вставить в столбец даты и времени минус секунды? - PullRequest
1 голос
/ 29 марта 2020

Итак, я работаю над проектом c#, который создает строку в таблице со столбцом datetime, а затем извлекает автоматически созданный идентификатор этого столбца. Мой способ извлечения идентификатора - через приведенный ниже код, проблема в том, что для выполнения первого запроса требуется продолжительность, а затем второй запрос занимает более 1 секунды, поэтому я получаю пустые строки. Итак, как мне вставить или выбрать строки без секунд?

INSERT INTO transactionlog(transactionDate) VALUES(NOW())

И ТОЛЬКО НЕМЕДЛЕННО ЭТО

SELECT transactionID,transactionDate FROM transactionlog WHERE transactionDate=NOW();

Ответы [ 2 ]

4 голосов
/ 29 марта 2020

NOW() дает вам дату / время, когда в нем содержится заявление началось . Хотя гарантируется, что несколько вызовов в одном запросе возвращают одно и то же значение, это не так по запросам.

Чтобы получить автоматически увеличенное значение, сгенерированное во время вставки, вы можете использовать LAST_INSERT_ID() вместо:

INSERT INTO transactionlog(transactionDate) VALUES(NOW());
SELECT LAST_INSERT_ID();
0 голосов
/ 29 марта 2020

Вы можете использовать функцию mysql DATE_FORMAT () для управления форматированием.

SELECT transactionID,transactionDate FROM transactionlog WHERE transactionDate=DATE_FORMAT(NOW(), '%c/%e/%Y %H:%i');

Вы можете посмотреть здесь: https://www.w3resource.com/mysql/date-and-time-functions/mysql-date_format-function.php

если вы хотите поиграть со спецификатором формата

...