задача
Вие искате да добавите време до датата на стойност или стойност на дата и време.
решение
Използвайте DATE_ADD () и DATE_SUB (), специално предназначени за извършване на аритметични операции с дати. Можете да приложите също TO_DAYS () и FROM_DAYS () или UNIX_TIMESTAMP () и FROM_UNIXTIME ().
дискусия
Дата аритметика е малко по-сложно от това с течение на времето, което се дължи на променливите дължините на месеци и години. Ето защо, MySQL предлага специални функции DATE_ADD () и DATE_SUB (), за да добавите интервал с дати и изваждане от nih.1 функция може да отнеме вальор и г интервал в следния формат:
DATE_ADD (д, интервална стойност на един)
DATE_SUB (д, интервална стойност на един)
където устройството - интервал на измерване единица и стойност - експресията уточнява броя на такива единици. Най-често включват такива ТЕХНОЛОЗИТЕ единици като година, месец, ден, час, минута и секунда (пълния списък е даден в ръководството MySQL). Имайте предвид, че мерната единица не е уточнено в множествено число и единствено число.
С DATE_ADD () и DATE_SUB (), за да извършите следните аритметични операции:
• Определете датата, която е три дни след днес:
MySQL> SELECT CURDATE (), DATE_ADD (CURDATE (), интервалът 3 ден);
• Проверка на датите стъпкови преди седмица (на интервал седмица, заявка за търсене са на стойност 7 дни, тъй като няма единица СЕДМИЦА): MySQL> SELECT CURDATE (), DATE_SUB (CURDATE (), какъв интервал от 7 дни);
• Ако трябва да се научат и за датата и часа, започнете със стойност DATETIME или TIMESTAMP.
За да отговорим на въпроса: "Колко време ще бъде 60 часа", стартирайте тази заявка:
MySQL> SELECT ПРЕДПРИЯТИЕТО (), DATE_ADD (сега (), интервалът 60 час);
• Някои ТЕХНОЛОЗИТЕ интервали и да посочва датата и часа. Следната заявка добавя към текущата дата и час на час четиринадесет и половина:
MySQL> SELECT ПРЕДПРИЯТИЕТО (), DATE_ADD (сега (), интервалът '14: 30 'HOUR_MINUTE);
По същия начин, можете да добавите 3 дни и 4 часа:
MySQL> Изберете NOW (), DATE_ADD (NOW (), период "04 Март" DAY_HOUR);
DATE_ADD () и DATE_SUB () са взаимозаменяеми, като един от тях - същото като другата с противоположен знак интервал.
Например, два такива повиквания еквиваленти за всяка стойност на г дата:
DATE_ADD (д, ИНТЕРВАЛ -3 месец)
DATE_SUB (д, ИНТЕРВАЛ 3 месец)
Тъй като MySQL 3.23.4, може да се използва за добавяне и изваждане дати интервали оператори + и -:
MySQL> SELECT CURDATE (), CURDATE () + ИНТЕРВАЛ 1 година;
MySQL> SELECT NOW (), сега () - ИНТЕРВАЛ 24 час;
За добавяне на интервална стойност датата или дата-и време също е възможно да се използва функция превръщане в блоковия елемент и гърба. Например, за да се премести датата напред или назад от една седмица (седем дни), използвайте TO_DAYS () и FROM_DAYS ():
TO_DAYS () функция е в състояние да конвертирате добавена стойност за дата и датата и часа на в дните, което е удобно за тези, които не се нуждаят от време:
За да се гарантира точността на използването на стойности DATETIME и TIMESTAMP UNIX_TIMESTAMP () функция и FROM_UNIXTIME () вместо предварително взети предвид.
Променете стойността на DATETIME за един час (3600 секунди), напред и назад:
За изпълнение на последния прием е необходимо оригинала и получената стойност попада в допустимия диапазон за датата и часа (1970 някъде в 2037) стойности.