MySQL datetime – aktuální datum
- bdinvpvsmvpscuiqpc
- Člen | 57
Ahoj, snažím se v MySQL insertu vložit aktuální čas a datum pomocí
now()
. Místo datumu se vloží text now()
. Vyřešil
jsem to pomocí date('Y-m-d H:i:s')
. Je to ideální řešení?
- Kamil Valenta
- Člen | 822
- ukaž, jak jsi ten dotaz v Nette vytvořil, asi to nebyl literal()
- ukaž strukturu tabulky, je velmi s podivem, že sloupec validně přijal hodnotu „now()“ jako string
- date() je samozřejmě také úplně v pohodě, je to php ekvivalent now() v sql
- bdinvpvsmvpscuiqpc
- Člen | 57
Dotaz vytvářím takto:
`$this->database->table(‚tabulka‘)->insert(array(
‚jmeno‘ ⇒ $values->name,
‚cas‘ ⇒ ‚now()‘));`
Struktura tabulky: https://ctrlv.cz/…/01/7uqg.png
- Marek Znojil
- Člen | 90
bdinvpvsmvpscuiqpc napsal(a):
Dotaz vytvářím takto: `$this->database->table(‚tabulka‘)->insert(array(
‚jmeno‘ ⇒ $values->name,
‚cas‘ ⇒ ‚now()‘));`Struktura tabulky: https://ctrlv.cz/…/01/7uqg.png
Ahoj,
můžeš aktuální datum i čas vložit takto:
$this->database->table('tabulka')
->insert([
'jmeno' => $values->name,
'cas' => new \DateTime,
]);
Explorer si s tím poradí.
Pokud víš, že sloupec cas bude vždy datum a čas vytvoření záznamu, tak také může v databázi nastavit sloupci výchozí hodnotu na now() resp. current_timestamp().
- David Matějka
- Moderator | 6445
Jinak, jak už naznačil Kamil, můžeš využít i sql literal:
$this->database->table('tabulka')
->insert([
'jmeno' => $values->name,
'cas' => new \Nette\Database\Literal('now()'),
]);