PHP/MySQL | Вопросы экспертам по MySQL

DELETED
Автор
10 января 2019, в 12:51
Delete
<?php
MySQL::run('update users set hp = hp + (unix_timestamp(now()) - hp_up) / 12, hp_up = unix_timestamp(now()) where hp < hp_max and (unix_timestamp(now()) - hp_up) / 12 >= 1 and id = ? limit 1', [UID]);
1. Есть ли более короткая функция вместо unix_timestamp(now()) ?
2. Как в этот запрос засунуть условие:
ЕСЛИ
hp + (unix_timestamp(now()) - hp_up) / 12
БОЛЬШЕ
hp_max
ТО
hp = hp_max
???


DELETED
Автор
10 января 2019, в 13:06
Delete
Сибирский (10.01.2019 в 13:00)
http://qaru.site/questions/937534/difference-between-unixtimestamp-and-now-in-mysql
http://qaru.site/questions/937534/difference-between-unixtimestamp-and-now-in-mysql
это не то - это просто, чем отличается, я заменил time() из пыха на unix_timestamp(now()) из мускула, но какая-то длинная змея получается из кода, может есть компактнее функция
PhpStorm, ну я понял что тебе не нужен именно NOW() если бы я пошел этим путем то я бы просто определил переменную $time перед запросом равную unixstamp и использовал бы ее. Но обычно я перекладываю вычисления на php а не на sql сервер
PhpStorm, по твоей проблеме, определи хранимую процедуру в SQL и используй ее

DELETED
Автор
10 января 2019, в 13:11
Delete
Сибирский (10.01.2019 в 13:09)
PhpStorm, ну я понял что тебе не нужен именно NOW() если бы я пошел этим путем то я бы просто определил переменную $time перед запросом равную unixstamp и использовал бы ее. Но обычно я перекладываю вычисления на php а не на sql сервер
PhpStorm, ну я понял что тебе не нужен именно NOW() если бы я пошел этим путем то я бы просто определил переменную $time перед запросом равную unixstamp и использовал бы ее. Но обычно я перекладываю вычисления на php а не на sql сервер
хочу запросом считать, поэтому такая конструкция
мне просто нужна текущая отметка unix, типа time(), только на мускуле - пока что только такой вариант нашёл
PhpStorm, ну если бы дочитал статью то увидал бы вот эти строки
MySQL UNIX_TIMESTAMP() возвращает временную метку Unix в секундах с "1970-01-01 00:00:00" UTC как целое число без знака, если никакие аргументы не передаются с UNIT_TIMESTAMP().
MySQL UNIX_TIMESTAMP() возвращает временную метку Unix в секундах с "1970-01-01 00:00:00" UTC как целое число без знака, если никакие аргументы не передаются с UNIT_TIMESTAMP().

DELETED
Автор
10 января 2019, в 13:19
Delete
Сибирский (10.01.2019 в 13:13)
PhpStorm, ну если бы дочитал статью то увидал бы вот эти строки
MySQL UNIX_TIMESTAMP() возвращает временную метку Unix в секундах с "1970-01-01 00:00:00" UTC как целое число без знака, если никакие аргументы не передаются с UNIT_TIMESTAMP().
PhpStorm, ну если бы дочитал статью то увидал бы вот эти строки
MySQL UNIX_TIMESTAMP() возвращает временную метку Unix в секундах с "1970-01-01 00:00:00" UTC как целое число без знака, если никакие аргументы не передаются с UNIT_TIMESTAMP().
так а что я делаю?
получается я лишний раз сую текущую отметку в виде NOW и конвертирую её в текущую отметку unix
так что ли?
два раза получаю одно и то же?
Ну типа того, учитывая то, что NOW() выдает форматированную строку текущего времени а UNIX_TIMESTAMP() целое вида unixstamp )

DELETED
Автор
10 января 2019, в 13:23
Delete
Сибирский (10.01.2019 в 13:21)
Ну типа того, учитывая то, что NOW() выдает форматированную строку текущего времени а UNIX_TIMESTAMP() целое вида unixstamp )
Ну типа того, учитывая то, что NOW() выдает форматированную строку текущего времени а UNIX_TIMESTAMP() целое вида unixstamp )
ща глушану now()